Communication device, method and program

The communication device addresses non-compliant protocol requests by modifying and executing them securely, improving system performance and security.

JP7719652B2Active Publication Date: 2025-08-06CANON KK
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021118128
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-07-16
Publication Date
2025-08-06
Estimated Expiration
2041-07-16

AI Technical Summary

Technical Problem

Existing communication devices struggle to appropriately process function execution requests from external devices that do not comply with communication protocol specifications, posing security risks and operational challenges.

Method used

A communication device equipped with analysis and execution means to modify and execute function requests that do not conform to protocol specifications, ensuring compliance and secure processing.

Benefits of technology

Enables appropriate processing of non-compliant function execution requests, enhancing security and functionality in communication systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007719652000001
    Figure 0007719652000001
  • Figure 0007719652000002
    Figure 0007719652000002
  • Figure 0007719652000003
    Figure 0007719652000003
Patent Text Reader

Abstract

To provide a communication device that, when an execution request for a function received from an external device does not conform to a communication protocol, appropriately processes the execution request.SOLUTION: A communication device includes: communication means for communicating with an information processing device; analysis means for analyzing an execution request for a function of the communication device using a predetermined communication protocol, received from the information processing device via the communication means; and execution means for, if, as a result of the analysis by the analysis means, the execution request for the function does not conform to specifications of the communication protocol, at least on condition that the execution request for the function is an execution request for a specific function, transmitting a response using the predetermined communication protocol and executing the specific function.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a communication device, a communication method, and a program. [Background technology]

[0002] It is common for communication devices to provide their functions to external information processing devices via a network. For example, the Common Gateway Interface (CGI) is a known technology for providing the functions of a communication device to external information processing devices via a network. The specifications for CGI are defined in RFC (Request For Comments) 3875. CGI is a technology based on the Hypertext Transfer Protocol (HTTP) defined in RFC 2616. In CGI, the communication device operates as an HTTP server, and the external information processing device operates as an HTTP client. Each device then performs communication protocol processing based on HTTP.

[0003] When providing the functions of a communication device to an external information processing device via a network, the HTTP client generates an HTTP request corresponding to the requested function and sends it to the HTTP server. The HTTP server analyzes the HTTP request received from the HTTP client and relays the processing to an application corresponding to the requested function. Even if there are multiple relay destination applications, the HTTP server determines to which application the processing should be relayed using parameters such as a uniform resource identifier (URI) included in the HTTP request. The relay destination application then executes the processing corresponding to the HTTP request. The HTTP server generates an HTTP response according to the execution result of the application and sends it to the HTTP client. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Publication No. 1-286652 Summary of the Invention [Problem to be solved by the invention]

[0005] Patent Document 1 describes that in order to be able to respond to protocol version upgrades, etc., protocol processing is structured in two stages, consisting of a basic protocol processing unit and an intelligent protocol processing unit, and the intelligent protocol processing unit is responsible for processing the version upgrade portion of the protocol.

[0006] In a configuration in which a communication device provides multiple application functions to an external information processing device over a communication protocol, the external information processing device requests the communication device to execute an application. If the requested operation does not comply with the protocol specifications, it may not be appropriate to treat the request as an error. On the other hand, it is also undesirable from a security standpoint to uniformly allow any requested operation that does not comply with the protocol specifications.

[0007] An object of the present invention is to provide a communication device, method, and program that appropriately processes a function execution request received from an external device when the execution request does not comply with a communication protocol. [Means for solving the problem]

[0008] In order to solve the above problem, a communication device according to the present invention is a communication device capable of communicating with an information processing device, and includes: communication means for communicating with the information processing device; analysis means for analyzing a function execution request of the communication device using a predetermined communication protocol, which is received from the information processing device via the communication means and which is received using the predetermined communication protocol; and execution means for transmitting a response using the predetermined communication protocol and executing the specific function, when the analysis by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least condition that the function execution request is a request to execute a specific function. The execution means changes the function execution request so that it conforms to the specifications of the predetermined communication protocol, and executes the specific function.It is characterized by: [Effects of the Invention]

[0009] According to the present invention, even if a function execution request received from an external device does not comply with a communication protocol, the execution request can be processed appropriately. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating a configuration of a communication system. [Figure 2] FIG. 1 is a diagram illustrating an external appearance of a communication device. [Figure 3] FIG. 1 is a block diagram showing a configuration of a communication device. [Figure 4] FIG. 2 is a diagram illustrating a configuration of an operation panel of the communication device. [Figure 5] FIG. 3 is a block diagram showing a program configuration of the communication device 300. [Figure 6] FIG. 10 is a diagram showing data of HTTP communication. [Figure 7] 10 is a flowchart showing the processing of an HTTP server module. [Figure 8] 10 is a flowchart showing an analysis process. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the invention claimed. Although multiple features are described in the embodiments, not all of these multiple features are necessarily essential to the invention, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same reference numerals are used to designate the same or similar components, and redundant explanations will be omitted.

[0012] An information processing device and a communication device included in the communication system of this embodiment will be described. In this embodiment, a smartphone capable of wireless communication with the communication device is exemplified as the information processing device, but is not limited to this. The information processing device may be any device capable of wired or wireless communication with the communication device, such as a mobile terminal, a notebook PC, a tablet terminal, a PDA (Personal Digital Assistant), a digital camera, etc. Furthermore, a printer (recording device) is exemplified as the communication device, but is not limited to this. The communication device may be any device capable of wired or wireless communication with the information processing device, such as a printer, an inkjet printer, a full-color laser beam printer, a monochrome printer, etc. Furthermore, in addition to a printer, the communication device may be a copier, a facsimile machine, a mobile terminal, a smartphone, a notebook PC, a tablet terminal, a PDA, a digital camera, a music playback device, a television, etc. Furthermore, the communication device may be a multifunction peripheral having multiple functions, such as a copying function, a fax function, and a printing function.

[0013] First, the network configuration of the communication system of this embodiment will be described with reference to Fig. 1. Note that the network configuration described below is an example, and is not limited to the configuration shown in Fig. 1 as long as it is a configuration that allows wired or wireless communication between the information processing device and the communication device.

[0014] The network configuration 110 shown in FIG. 1(a) is a network configuration including a local area network (LAN) 111 in infrastructure mode. In an infrastructure connection defined by the IEEE 802.11 standard, devices communicate with each other via a network established by an access point provided outside the devices that communicate with each other. For example, an information processing device 200 and a communication device 300 connect to a network established by an access point 112, and the devices communicate with each other via the access point 112. To establish a connection in infrastructure mode, each device searches for an access point using a device search command. Once the access point is found, wireless connection processing (such as establishing a wireless connection) is performed between the device and the access point, and then IP connection processing (such as assigning an IP address) is performed. Note that commands and parameters transmitted and received when establishing a wireless connection between a device and an access point are, for example, those defined in the IEEE 802.11 (Wi-Fi) standard.

[0015] In this embodiment, when the communication device 300 operates in infrastructure mode, the access point 112 operates as a parent station, and the communication device 300 operates as a child station. This enables communication between the communication device 300 and the information processing device 200 via the access point 112. The channel used for communication in infrastructure mode may be a 2.4 GHz channel, or a frequency band other than the 2.4 GHz band, such as a 5.0 GHz channel or a 6.0 GHz channel. In order to communicate with the communication device 300 via the access point 112, the information processing device 200 needs to recognize that the communication device 300 belongs to a network formed by the access point 112 and to which the information processing device 200 belongs. In this embodiment, a state in which the information processing device 200 and the communication device 300 are simply connected to the same access point is considered to be a connection state in infrastructure mode. That is, in the connection state in the infrastructure mode, the information processing device 200 and the communication device 300 only need to be connected to the same access point, and do not need to be aware that the other device belongs to the same network as the information processing device 200 and the communication device 300.

[0016] The network configuration 120 shown in Fig. 1(b) is a network configuration including a LAN 121 in direct mode. A connection in direct mode is a form in which devices connect wirelessly directly to each other without going through an external device such as an external access point 112. In Wi-Fi communication, there are multiple modes for direct connection using the P2P method, such as soft AP mode and Wi-Fi Direct (WFD) mode. A mode in which a direct connection is performed using WFD is called WFD mode. WFD is a standard established by the Wi-Fi Alliance.

[0017] In WFD mode, a device uses a device discovery command to search for a partner device with which it will communicate, and then determines its roles as a P2P group owner and a P2P client. After determining the roles, the wireless connection process begins. This role determination corresponds, for example, to GO Negotiation in P2P. Specifically, first, one device issues a device discovery command to search for the other device with which it will connect in WFD mode. Once the other device with which it will communicate is discovered, the two devices confirm information about the services and functions that each device can provide. Note that this confirmation of device provisioning information is optional and not required. This device provisioning information confirmation phase corresponds, for example, to Provision Discovery in P2P. Next, by mutually confirming this device provisioning information, the two devices determine their roles as the P2P client and the P2P group owner. Once the client and group owner are determined, they exchange parameters for WFD communication. Based on the exchanged parameters, the subsequent wireless connection process and IP connection process are performed between the P2P client and group owner.

[0018] In the soft AP mode, between devices that communicate, for example, the information processing device 200 and the communication device 300, one device, for example, the information processing device 200, acts as a client that requests various services. The other device realizes the functions of a Wi-Fi access point through software settings. In the soft AP mode, the client searches for a device that will become a soft AP using a device search command. Once a soft AP is found, subsequent wireless connection processing (such as establishing a wireless connection) is performed between the client and the soft AP, followed by IP connection processing (such as assigning an IP address). Note that commands and parameters transmitted and received when establishing a wireless connection between the client and the soft AP are those specified in, for example, the IEEE 802.11 (Wi-Fi) standard. In this embodiment, when the communication device 300 operates via a direct connection, it operates as a master station in the network to which the communication device 300 belongs. Note that a master station is a device that establishes a wireless network and provides parameters used for connecting to the wireless network to slave stations. The parameters used for connecting to the wireless network are, for example, parameters related to the communication channel used by the master station. By receiving the parameters, the slave station connects to the wireless network established by the master station using the communication channel used by the master station. In the direct mode, the communication device 300 operates as the master station, and therefore the communication device 300 can determine which communication channel to use for communication in the direct mode. Furthermore, the connection information (SSID and password) for connecting to the communication device 300 in the direct mode may be changed as desired by a user's operation on an operation unit of the communication device 300.

[0019] In this embodiment, the communication device 300 can establish the LAN 111 via an infrastructure connection and the LAN 121 via a direct connection in parallel. In other words, the communication device 300 can establish a Wi-Fi connection in which the communication device 300 serves as a slave station and a Wi-Fi connection in which the communication device 300 serves as a master station in parallel. This operation with the above-mentioned two connections established in parallel is called simultaneous operation.

[0020] In this embodiment, the information processing device 200 performs settings (connection setup processing) on the communication device 300 to operate the communication device 300 using at least one of the above-mentioned infrastructure connection and direct connection communication methods. The connection setup processing in this embodiment is also called cableless setup because it is performed by wireless communication between the information processing device 200 and the communication device 300. The connection setup processing may also be performed by wired communication. The communication device 300 performs the connection setup processing while operating in a connection setup mode (connection setup state), which is a setup mode for performing the connection setup processing. The connection setup mode will be described later.

[0021] When the information processing device 200 operates the communication device 300 in infrastructure mode, the information processing device 200 transmits infrastructure connection setting information for operating the communication device 300 in infrastructure mode to the communication device 300 via wireless communication. The infrastructure connection setting information includes information about the access point 112 that is required for connecting to the access point 112. The information about the access point 112 is, for example, information about an SSID (Service Set Identifier), a password, and a frequency band. The communication device 300 can connect to the access point 112 by using the information about the access point acquired from the information processing device 200.

[0022] On the other hand, when the information processing device 200 operates the communication device 300 in direct mode, the information processing device 200 transmits direct connection setting information to the communication device 300 via wireless communication. The direct connection setting information includes instructions for enabling the WFD function to operate as a Group Owner and for enabling the access point setting of the communication device 300. The information processing device 200 also acquires connection information required for a direct connection between the information processing device 200 and the communication device 300 from the communication device 300. The connection information for a direct connection with the communication device 300 includes, for example, information such as the SSID and password of the communication device 300. The information processing device 200 connects to a network established by the communication device 300 using the connection information acquired from the communication device 300, thereby enabling a direct connection with the communication device 300.

[0023] In the present embodiment, a temporary direct connection for connection setting between the information processing device 200 and the communication device 300 (a direct connection dedicated to the connection setting mode) is used when transmitting infrastructure connection setting information and direct connection setting information and when acquiring connection information for directly connecting to the communication device 300 in the connection setting process. In the present embodiment, the connection setting process is performed using Wi-Fi as the temporary direct connection for connection setting, but a wireless communication standard other than Wi-Fi, such as Bluetooth, may also be used, or a wired communication standard such as wired LAN or USB may also be used.

[0024] After a Wi-Fi infrastructure mode connection or a direct mode connection is established between the information processing device 200 and the communication device 300 through the connection setting process, communication becomes possible between the information processing device 200 and the communication device 300 via the established connection. Specifically, for example, the information processing device 200 can transmit, to the communication device 300, a print job for causing the communication device 300 to execute printing or a scan job for causing the communication device 300 to execute scanning, via the established connection.

[0025] As described above, communication device 300 can operate in the connection setting mode. The trigger for communication device 300 to start operating in the connection setting mode may be, for example, a user pressing a connection setting mode button, or communication device 300 starting up (power ON).

[0026] When the communication device 300 starts operating in the connection setting mode, it enables Wi-Fi communication. Specifically, it operates the communication device 300 in a soft AP mode dedicated to the connection setting mode. This puts the communication device 300 in a state where it can establish a direct connection via Wi-Fi with the information processing device 200. The connection information for connecting to the communication device 300 is stored in advance in a setup program installed on the information processing device 200, and the information processing device 200 is assumed to recognize the connection information for connecting to the soft AP mode dedicated to the connection setting mode in advance. Therefore, unlike the connection information of the access point enabled in a direct connection, the connection information for connecting to the soft AP mode dedicated to the connection setting mode cannot be arbitrarily changed by the user. Note that in the connection setting mode, the communication device 300 may connect to the information processing device 200 using WFD instead of soft AP mode. That is, the communication device 300 may operate as a group owner during a direct connection dedicated to the connection setting mode and receive setting information from the information processing device 200 via a WFD-based direct connection dedicated to the connection setting mode.

[0027] FIG. 2 is a diagram illustrating the external appearance of the communication device 300. In this embodiment, a multifunction printer (MFP) equipped with print, scan, and other functions will be described as an example of the communication device 300. The power button 301 is a hard key used by the user to turn the power on and off. The operation panel 302 includes a display and buttons used by the user to operate the communication device 300. The print paper insertion slot 303 is an insertion slot that can accommodate paper of multiple sizes. Paper inserted into the print paper insertion slot 303 is transported one sheet at a time to the printing unit, where it is printed and ejected from the print paper exit 304. The platen 305 is a transparent glass platform used to place an original on and scan it with a scanner. The platen pressure plate 306 presses the original against the platen to prevent it from floating when scanned with a scanner, and is a cover that prevents external light from entering the scanner unit. The wireless LAN communication unit 307 has embedded therein circuits such as an antenna for realizing wireless communication, such as the aforementioned infrastructure connection or direct connection. The USB communication unit 308 includes a circuit and a USB connector for the communication device 300 to communicate with an external information processing device 200 etc. via a USB connection. The power supply unit 309 includes a power supply circuit and a power jack for supplying power to the communication device 300.

[0028] FIG. 3 is a block diagram showing an example of the configuration of a communication device 300. The communication device 300 includes a main board 310 that controls the entire device, a power button 301, an operation panel 302, a wireless LAN communication unit 307, and a USB communication unit 308. The internal blocks of the main board 310 are connected to each other via an internal bus 312 so that they can communicate with each other. A microprocessor-based CPU 311 disposed on the main board 310 operates in accordance with a control program stored in a program memory 313 in a ROM format and data stored in a data memory 314 in a RAM format. The CPU 311 controls a scanning unit 317 to scan an original document and stores the scan results in an image memory 315 in the data memory 314. The CPU 311 also controls a printing unit 316 to print on a recording medium based on the image data stored in the image memory 315 in the data memory 314. The CPU 311 controls the wireless LAN communication unit 307 via a wireless LAN communication control unit 318, thereby performing wireless LAN communication with the information processing device 200 via a direct connection or an infrastructure connection. The CPU 311 also controls the USB communication unit 308 via the USB communication control unit 320 to perform USB communication with the information processing device 200 via a USB connection. The CPU 311 controls the operation control unit 319 to accept operation information from the power button 301 and the operation panel 302. The CPU 311 also controls the operation control unit 319 to display the status of the communication device 300 and a function selection menu on the operation panel 302.

[0029] 4(a) and 4(b) are diagrams schematically illustrating an example of the configuration of the operation panel 302 of the communication device 300. FIG. 4(a) illustrates an example in which a touch panel display 401 is used as the operation panel 302. The user presses the power button 301 to power on the communication device 300. When the communication device 300 is powered on, a home screen, which is the highest level of a menu that the user can operate, is displayed on the touch panel display 401. The home screen displays a copy area 405 for receiving an instruction to execute a copy process, a scan area 406 for receiving an instruction to execute a scan process, and a print area 407 for receiving an instruction to execute a print process. Also displayed are a status display area 402 that displays the settings and connection status of the communication device 300's infrastructure connection or direct connection, a connection setting mode area 403 that allows the user to start operation in the connection setting mode at any time, and a setting area 404 for changing various settings.

[0030] FIG. 4(b) shows an example in which a relatively small LCD display 408 and various hard keys 409 to 416 are used as the operation panel 302. When the user presses the power button 301, the communication device 300 is powered on. When the communication device 300 is powered on, a home screen, which is the highest level of a menu that the user can operate, is displayed on the LCD display 408. The user can operate a cursor displayed on the LCD display 408 by pressing cursor movement buttons 411 and 412. When the OK button 414 is pressed, an operation is executed, and when the back button 413 is pressed, the previous menu screen is displayed. Furthermore, when the QR button 409 is pressed, a QR code (registered trademark) containing information necessary for a direct connection with the communication device 300 is displayed. When this QR code is read by a camera or the like of the information processing device 200, wireless communication between the information processing device 200 and the communication device 300 becomes possible via a direct connection. Furthermore, pressing the connection setting mode button 410 makes it possible to start the connection setting mode, and by sending connection information from the information processing device 200 to the communication device 300, it becomes possible to connect the communication device 300 to the access point 112. The stop button 415 is a button for canceling various processes while the communication device 300 is executing them. The copy start button 416 is a button for receiving an instruction to start scanning and printing an original by the communication device 300.

[0031] Fig. 5 is a block diagram showing an example of the configuration of a program that operates when communication device 300 operates as an HTTP server and provides application functions to information processing device 200. The program elements and configuration shown in Fig. 5 are an example and are not limited to the configuration shown in Fig. 5. The program group shown in Fig. 5 is a control program stored in program memory 313 that runs on CPU 311 and at least a portion of the data stored in data memory 314 associated with the control program. The program group in Fig. 5 includes a communication program section 510 that mainly controls communications, an application program section 520 that mainly controls application functions, and a device control program section 530 that mainly controls printing and scanning.

[0032] The communication program unit 510 includes a network communication control module 511, a security module 512, a USB communication control module 513, an HTTP server module 514, and a static content database 515. The network communication control module 511 controls the wireless LAN communication control unit 318 and is responsible for up to the transport layer of the communication protocol stack, thereby realizing TCP / IP communication for the communication device 300. The security module 512 is responsible for encryption and decryption of communications, as well as associated processes such as authentication and hashing, thereby realizing TLS / SSL communication for the communication device 300. The USB communication control module 513 controls the USB communication control unit 320 and is responsible for processing for operation as a USB device, thereby realizing USB communication for the communication device 300. The HTTP server module 514 is responsible for processing for operation of the communication device 300 as an HTTP server, thereby realizing HTTP communication with the external information processing device 200 operating as an HTTP client. The operation of the HTTP server module 514 will be described later with reference to FIGS. 7 and 8. The static content database 515 is a module that operates as a file system, and realizes reading and writing of JPEG data, HTML data, and the like stored in the data memory 314 .

[0033] The application program unit 520 includes application programs 525-528 and associated CGI programs 521-524. Each of the CGI programs 521-524 receives a CGI search from the HTTP server module 514 and determines, based on parameters such as the URI, whether the HTTP request is one that the CGI program 521-524 itself should process. If it determines that the HTTP request is one that the CGI program 521-524 itself should process, the CGI program 521-524 accepts a CGI execution request from the HTTP server module 514, receives the body of the HTTP request, and extracts necessary data from the parsed parameters. Then, each of the CGI programs 521-524 executes the function of the application program 525-528 based on the received HTTP request and generates an HTTP response according to the execution result.

[0034] The print application 525 is a module that receives a request from the print CGI program 521 and performs print processing. For example, the body of the HTTP request received by the print CGI program 521 contains print settings and print data in a specific format. Upon receiving this, the print application 525 controls the print engine 531 to execute printing. The printer application 525 then notifies the print CGI program 521 of whether printing was successful, error information, and the like.

[0035] The scan application 526 is a module that performs scanning processing upon receiving a request from the scan CGI program 522. For example, scan settings are stored in a predetermined format in the body of the HTTP request received by the scan CGI program 522, and upon receiving these, the scan application 526 controls the scan engine 531 to execute a scan. The scan application 526 then notifies the scan CGI program 522 of whether or not the scan was successful, error information, scanned image data, and the like.

[0036] The connection setting application 527 is a module that executes a specific connection setting process upon receiving a request from the connection setting CGI program 523. For example, the body of the HTTP request received by the connection setting CGI program 522 stores connection settings in a predetermined format. The connection settings include, for example, information about the access point 112, such as the SSID, password, and frequency band. Upon receiving this information, the connection setting application 527 controls the wireless LAN communication control unit 318 to execute the connection setting. The connection setting application 527 then notifies the connection setting CGI program 523 of whether the connection setting can be executed, error information, and the like. Note that there are multiple methods for the connection setting process. Therefore, the connection setting application 527 is a module for a specific connection setting process, and a separate application (not shown) is provided as a module for a different method of connection setting process.

[0037] The WebUI application 528 is a module that receives requests from the WebUICGI program 524 and realizes the display and operation of the WebUI. For example, the data extracted by the WebUICGI program 524 from the parsed parameters of the HTTP request includes information about the WebUI to be displayed, language settings, and the like. For example, if the request is to display the status of the communication device 300 or the amount of ink remaining in the print unit 316 on the WebUI, the WebUI application 528 collects the necessary data from other modules and the data memory 314 and formats the data. The WebUI application 528 then notifies the WebUICGI program 524 of whether the display request was successful, error information, or the collected and formatted data.

[0038] The device control program unit 530 includes a print engine 531 and a scan engine 532. The print engine 531 is a module that controls the print unit 316 to realize print processing based on print data, print settings, and print control information received from the print application 525, etc. The scan engine 532 is a module that controls the scan unit 317 to realize scan processing based on scan settings and scan control information received from the scan application 526, etc.

[0039] 6 is a diagram showing an example of HTTP communication data transmitted and received between the information processing device 200 and the communication device 300. Here, the information processing device 200 operates as an HTTP client, and the communication device 300 operates as an HTTP server.

[0040] 6(a) shows an example of an HTTP request 610 transmitted from the information processing device 200 to the communication device 300. The HTTP request 610 is generated by a web browser or an application program running on the information processing device 200 and transmitted as a request to execute a function of the communication device 300. The HTTP request 610 is made up of multiple lines of character strings. The HTTP request 610 includes at least a request line 611, a header field 612, and a blank line 613. The HTTP request 610 may also include a body portion 614.

[0041] The request line 611 includes an HTTP method 615, a URI (Uniform Resource Identifier) 616, and an HTTP version 617. The HTTP method 615 includes types such as "GET," "POST," and "HEAD," which represent broad control types in HTTP. The URI 616 represents the target of the request and includes path information and file name that identify the target of the request. The HTTP version 617 is HTTP version information and indicates which version of HTTP the request corresponds to.

[0042] The header field 612 is made up of multiple header lines, and in particular, the Host header 618 is the only required header in HTTP / 1.1. Other headers 619 are optional, and their presence or absence depends on the request. Furthermore, a blank line 613 indicates that the header field 612 ends with the line immediately preceding it. The body portion 614 exists when, for example, the header field 612 includes a Content-Length header, and indicates the payload of the HTTP request 610.

[0043] 6(b) shows an example of an HTTP response 620 sent from the communication device 300 to the information processing device 200 in response to the HTTP request 610 shown in FIG. 6(a). The HTTP response 620 is made up of multiple lines of character strings. The HTTP response 620 includes at least a status line 621, a header field 622, and a blank line 623, and may also include a body portion 624.

[0044] The status line 621 includes an HTTP version 625, a status code 626, and a text phrase 627. The HTTP version 625 is HTTP version information and indicates which version of HTTP the response corresponds to. The status code 626 is a number indicating the processing result of the HTTP request 610 corresponding to the HTTP response 620. The text phrase 627 is a message that supplements the meaning of the status code 626.

[0045] The header field 622 is made up of multiple header lines. Note that the header field 622 included in the HTTP response 620 does not define any required headers in HTTP / 1.1. A blank line 623 indicates that the header field 622 ends with the line immediately preceding it. The body portion 624 exists, for example, when the header field 622 includes a Content-Length header, and indicates the payload of the HTTP request 620.

[0046] The pair of HTTP request 610 and HTTP response 620 shown in Figures 6(a) and 6(b) shows an example of a case where infrastructure connection setting information is transmitted when the information processing device 200 performs connection setting processing for the communication device 300. Therefore, in the HTTP request 610, a character string having a prefix " / networkConfig / " indicating that the request should be processed by the connection setting CGI program 523 is specified as URI 616. Furthermore, the body portion 614 contains information about the access point 112, such as the SSID, password, and frequency band. Furthermore, in the HTTP response 620, "200 OK" indicating that the execution result of the HTTP request 610 was successful is set in the status code 626 and text phrase 627. Furthermore, the body portion 624 contains "result=accepted" indicating that the connection setting application 527 has accepted the connection setting processing.

[0047] Fig. 7 is a flowchart showing the processing of the HTTP server module 514 of the communication device 300. The processing of Fig. 7 is started when the communication device 300 is connected to an IP network, for example, when the IP address of the communication device 300 on the IP network established by enabling the access point function of the communication device 300 for a direct connection dedicated to the connection setting mode is determined.

[0048] In S701, an HTTP server startup process is performed. The HTTP server startup process includes, for example, initialization of an area of the data memory 315 used by the HTTP server module 514, connection standby process, and the like. Here, the HTTP server module 514 may use the network communication control module 511 to wait for connections via multiple communication paths, such as the TCP80 port and the TCP443 port. For example, the TCP80 port waits for HTTP requests via plaintext communication, and the TCP443 port waits for HTTP requests via encrypted communication. Furthermore, in addition to TCP communication, the USB communication control module 513 may also be used to wait for HTTP requests via USB communication.

[0049] In S702, the process waits for a connection event that instructs the start of connection or communication, or a stop event that instructs the HTTP server to stop. Then, in S703, the HTTP server module 514 determines whether a connection event has occurred. For example, when a connection from an external information processing device 200 is detected on the TCP443 port, the HTTP server module 514 determines that a connection event has occurred. If it is determined that a connection event has occurred, connection processing is performed in S704. In the connection processing, for example, in the case of encrypted communication, a TLS / SSL handshake is performed using the security module 512. As a result, subsequent communication in this session is encrypted, and security between the information processing device 200 and the communication device 300 is ensured.

[0050] In S705, the request line and header fields are received. As described in Fig. 6A, the HTTP request 610 can detect the end of the header fields by the blank line 613, so reception continues until the blank line 613 is detected.

[0051] In S706, the request line and header fields are analyzed. Details of S706 will be described later with reference to FIG. 8. In S707, the HTTP server module 514 determines whether the analysis was successful or unsuccessful based on the analysis result of S706. If no error occurred in S706, the analysis is determined to be successful, and the process proceeds from S707 to S708. On the other hand, if an error occurred in S706, the analysis is determined to be unsuccessful, and the process proceeds from S707 to S718.

[0052] In S708, a CGI search is performed. In the CGI search, the HTTP server module 514 passes the parsed parameters to each of the CGI programs 521 to 524 in turn, and each of the CGI programs 521 to 524 responds with the result of determining whether the HTTP request is one that it should process. This determination is made, for example, by checking whether the URI information (character string) passed as one of the parsed parameters matches the beginning of the character string that each CGI program holds as the URI that it should process. In S709, the HTTP server module 514 determines whether any of the CGI programs 521 to 524 has responded that the HTTP request is one that it should process. If any of the CGI programs has responded that the HTTP request is one that it should process, the process proceeds from S709 to S710.

[0053] In S710, the HTTP server module 514 requests CGI execution from the CGI program that responded in S708 that the HTTP request is one that it should process. The CGI program that has been requested to execute CGI receives the body of the HTTP request, extracts necessary data from the parsed parameters, and executes the requested function in cooperation with each of the application programs 525 to 528. For example, if the HTTP request is one that the connection setting CGI program 523 should process, it executes a specific connection setting process. The CGI program then generates an HTTP response according to the execution result and returns the CGI execution result to the HTTP server module 514. In S711, the HTTP server module 514 determines whether the returned CGI execution result was successful or unsuccessful. If it is determined that the returned CGI execution result was successful, the process proceeds from S711 to S712. On the other hand, if it is determined that the returned CGI execution result was unsuccessful, the process proceeds from S711 to S718.

[0054] In S712, a response process for the generated HTTP response is performed. In S712, the HTTP response is transmitted to the external information processing apparatus 200 that transmitted the HTTP request. In S713, the HTTP server module 514 determines whether the Connection header of the transmitted HTTP response is "close", indicating a disconnection. If it is determined that the Connection header of the transmitted HTTP response is "close", indicating a disconnection, the process proceeds from S713 to S714. On the other hand, if it is determined that the Connection header of the transmitted HTTP response is "keep-alive", indicating a continuation of communication, the process returns from S713 to S705 and the next HTTP request is received. Note that if the transmitted HTTP response does not contain a Connection header, it is assumed that "close", indicating a disconnection, was set, and the process proceeds from S713 to S714.

[0055] In S714, a disconnection process is performed, the session ends, and then the process returns to S702. For example, in the case of TCP443 port, the TLS / SSL communication is disconnected using the security module 512, and then the TCP communication is disconnected using the network communication control module 511. Then, the process returns to S702 to wait for the next connection.

[0056] If it is determined in S709 in the CGI search in S708 that all CGI programs have responded that the HTTP request is not one that they should process, the process proceeds from S709 to S715, and a static content search is performed. This is because CGI programs are programs for generating dynamic content, and if all CGI programs have responded that the HTTP request is not one that they should process, the HTTP request is determined to be a request for static content.

[0057] In the static content search, a query is made to the static content database 515 based on the parsed parameters such as the URI. Then, in S716, the HTTP server module 514 determines whether or not static content corresponding to the HTTP request has been detected based on the query result. If it is determined that static content has been detected, the process proceeds from S716 to S717. On the other hand, if it is determined that static content has not been detected, the process proceeds from S716 to S718.

[0058] In S717, the HTTP server module 514 reads the JPEG data, HTML data, etc. stored in the data memory 314, generates an HTTP response, and proceeds to S712.

[0059] If the process proceeds from S707, S711, or S716 to S718, the HTTP server module 514 performs error detection and generates an HTTP response. In the error detection, the HTTP status code 626 and text phrase 627 are determined based on the reason for the error. For example, if an error that the Host header does not exist occurs in S706, the HTTP status code 626 and text phrase 627 are determined to be "400 Bad Request." An HTTP response is then generated using the determined HTTP status code 626 and text phrase 627, and the process proceeds to S712.

[0060] If it is determined in S703 that a connection event has not occurred, then in S720 the HTTP server module 514 determines whether a stop event has occurred that instructs the HTTP server to stop. If it is determined that a stop event has occurred, the process proceeds from S720 to S721. A stop event occurs when the communication device 300 is disconnected from the IP network, for example, when the power button 301 is used to turn off the power to the communication device 300. In S721, the HTTP server module 514 performs processing to stop the HTTP server, and then ends the processing of FIG. 7. On the other hand, if it is determined in S720 that a stop event has not occurred, for example, if an event that is neither a connection event nor a stop event has occurred, then no processing is required, and the process returns from S720 to S702.

[0061] 8 is a flowchart showing the processing for parsing the request line and header field in S706. In S801, the HTTP server module 514 obtains the first line from the received data and parses it as a request line 611. In S802, the HTTP server module 514 determines whether the analysis result in S801 is successful or unsuccessful. If it is determined that the analysis result in S801 is successful, in S803 the HTTP server module 514 saves the HTTP method 615, URI 616, and HTTP version 617 as parsed parameters. On the other hand, if it is determined that the analysis result in S801 is unsuccessful, in S815 the HTTP server module 514 saves information indicating a failure in parsing the request line, and then terminates the subprocess in FIG. 8, regarding the analysis of the HTTP request as unsuccessful.

[0062] After S803, in S804, the HTTP server module 514 obtains the next line from the received data as the analysis target and analyzes it as a header line corresponding to one line of the header field 612. Since the HTTP header has a grammar in which the header name and header value are separated by a colon, if the analysis is successful, a pair of the header name and the header value is obtained as header information. In S805, the HTTP server module 514 determines whether the line to be analyzed is a blank line. If it is determined that the line to be analyzed is a blank line, the process proceeds to S808. On the other hand, if it is determined that the line is not a blank line, the process proceeds to S806, where the HTTP server module 514 determines whether the analysis result is successful or unsuccessful. If it is determined that the analysis result is successful, in S807, the HTTP server module 514 saves the pair of the header name and the header value obtained in S804 as analyzed parameters. On the other hand, if it is determined that the analysis result is a failure, in S815 the HTTP server module 514 saves information indicating the failure to analyze the header field, and then ends the subprocess in Fig. 8. After S807, the process returns to S804, and the HTTP server module 514 obtains the next line from the received data as the analysis target and analyzes it as a header line corresponding to one line of the header field 612.

[0063] In S808, the HTTP server module 514 determines whether the Host header 618 is present in the saved parsed parameters. For example, the HTTP server module 514 determines whether the Host header 618 is present by confirming that the header name description in the parsed parameters matches "Host" regardless of case. If it is determined that the Host header 618 is present, in S809 the HTTP server module 514 concludes that the process was successful and ends the subprocess in Fig. 8. On the other hand, if it is determined that the Host header 618 is not present, the process proceeds to S810.

[0064] According to the HTTP communication protocol specifications, if it is determined that the Host header 618 does not exist, it is assumed that a Host header-not-existing error has occurred, and the analysis process must be terminated and a "400 Bad Request" HTTP response must be returned. However, among the methods by which the external information processing device 200 requests a connection setup process using an HTTP request, there is a method in which the Host header is omitted. In this embodiment, the absence of the Host header is not determined to be an error, provided that the information included in the request line 611 indicates that the HTTP request corresponds to a predetermined process (e.g., a specific connection setup process) and the state of the communication device 300 corresponds to the predetermined process (e.g., the state of the specific connection setup process). With this configuration, even if the external information processing device 200 is configured to omit the Host header when requesting a connection setup process using an HTTP request, it is possible to appropriately handle the situation without resorting to error processing and without affecting other types of processing. This will be described in detail below.

[0065] In S810, the HTTP server module 514 acquires a URI from the parsed parameters. Then, in S811, the HTTP server module 514 determines whether the acquired URI matches the beginning of the URI that should be accepted by the connection setting CGI program 523. This is because the HTTP server module 514 determines whether it is a specific connection setting process by determining whether it is a specific connection setting process. In other words, if the acquired URI matches the beginning of the URI that should be accepted by the connection setting CGI program 523, it is determined that it is an HTTP request for specific connection setting process. On the other hand, if the acquired URI matches the beginning of the URI that should be accepted by the connection setting CGI program 523, it is determined that it is not an HTTP request for specific connection setting process. If it is determined that there is a prefix match, proceed to S812, and if it is determined that there is no prefix match, proceed to S815.

[0066] In S812, the HTTP server module 514 acquires the status of the communication device 300. In S813, the HTTP server module 514 determines, based on the acquired status, whether or not the communication device 300 is operating in connection setup mode (a state of a specific connection setup process). If it is determined that the communication device 300 is operating in the connection setup mode, the process proceeds to S814, and if it is determined that the communication device 300 is not operating in the connection setup mode, the process proceeds to S815.

[0067] In S814, the HTTP server module 514 saves the dummy value as the parsed parameter of the Host header. For example, the HTTP server module 514 saves a value indicating the IP address of the communication device 300 itself, such as a header name of "Host" and a header value of "192.168.1.2", as the parsed parameter of the Host header. After S814, in S809, the HTTP server module 514 ends the subprocess of FIG. 8 as a successful process. If the process proceeds to S815 from S811 or S813, the HTTP server module 514 saves information indicating that an error has occurred, indicating that the Host header does not exist. After S815, the HTTP server module 514 ends the subprocess of FIG. 8 as a failed analysis of the HTTP request.

[0068] In this way, by the special processing of S810 to S814, it is possible to accept an HTTP request that does not have a Host header, provided that it has been analyzed that the HTTP request is a specific connection setup process and that communication device 300 is in a specific connection setup mode. Note that in the case of a connection setup process of a different type than the specific connection setup process, it is preferable not to accept an HTTP request that does not have a Host header.

[0069] Other processes may be performed as the special processes of S810 to S814. Furthermore, other configurations may be used for the analyzed parameters, CGI programs, and determination methods to be targeted. For example, when the information processing device 200 requests the execution of an application function (e.g., a print application) other than the specific connection setting process, if there is a possibility of an error occurring due to non-compliance with the HTTP communication protocol specifications, special processes may be performed. Furthermore, for example, even if specific information required by the HTTP communication protocol, not limited to the Host header, is not present, the specific information may be replaced with dummy information.

[0070] Furthermore, in this embodiment, the state of the communication device 300 is determined in S812 and S813, but these processes may be omitted and the process of S814 may be performed after a prefix match is determined in S811. Also, in this embodiment, a dummy value is stored as the Host header in S814. However, if it is known that a Host header is not necessary in a CGI program or application module, the process of S809 may be performed without performing S814. Furthermore, although this embodiment has been described using HTTP as an example of a communication protocol, it is also applicable to cases where the communication device 300 provides application functions to the information processing device 200 using a communication protocol other than HTTP.

[0071] In this embodiment, in S811, a determination is made as to whether the HTTP request is for a specific connection setup process by a prefix match determination, but other determination methods are also possible. For example, a full match, a suffix match, or a partial match may be used. Also, a determination as to whether the request is for IPP (Internet Printing Protocol) may be made based on a value included in the header field of the HTTP request (for example, the value of Content-Type), and whether the request is for a specific connection setup process may be determined. In other words, a determination as to whether the request is for a specific connection setup process may be made based on a value included in the HTTP request.

[0072] The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program.The present invention can also be realized by a circuit (e.g., ASIC) that realizes one or more functions.

[0073] The invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]

[0074] 111, 121 LAN: 112 Access point: 200 Information processing device: 300 Communication device: 311 CPU: 313 Program memory: 314 Data memory

Claims

1. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; Equipped with the execution means modifies the function execution request so that it complies with the specifications of the predetermined communication protocol, and executes the specific function. A communication device comprising:

2. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; a first determination means for determining whether the function execution request is a request to execute the specific function based on the result of the analysis by the analysis means; Equipped with the first determination means determines whether the function execution request is a request to execute the specific function based on whether the function execution request includes information indicating that the function execution request is a request to execute the specific function; The information indicating that the request is for execution of the specific function is written as a Uniform Resource Identifier (URI). A communication device comprising:

3. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; a second determination means for determining whether the state of the communication device is in a state in which the specific function can be executed; Equipped with the execution means, on the condition that the function execution request is a request for execution of the specific function and the second determination means has determined that the state of the communication device is a state in which the specific function can be executed, modifies the function execution request to conform to the specifications of the predetermined communication protocol. A communication device comprising:

4. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; Equipped with if the request for execution of the function does not include information required for communication using the predetermined communication protocol, it is determined that the request for execution of the function does not conform to the specifications of the predetermined communication protocol; the information required in the communication according to the predetermined communication protocol is header information, the execution means sets dummy information as the header information in the function execution request, thereby modifying the function execution request so that it complies with the specifications of the predetermined communication protocol. A communication device comprising:

5. 5. The communication device according to claim 1, wherein the specific function is a function of causing the information processing device to execute a setting process for operating the communication device in a predetermined network configuration.

6. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; Equipped with the specific function is a function of causing the information processing device to execute a setting process for operating the communication device in a predetermined network configuration; A communication device comprising:

7. 7. The communication device according to claim 6, wherein the predetermined network configuration is at least one of an infrastructure connection and a direct connection between the information processing device and the communication device.

8. A communication device capable of communicating with an information processing device, a communication means for communicating with the information processing device; an analysis means for analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication means; an execution means for transmitting a response using the predetermined communication protocol and executing the specific function, if the analysis result by the analysis means shows that the function execution request does not conform to the specifications of the predetermined communication protocol, on at least the condition that the function execution request is a request to execute a specific function; Equipped with When it is determined as a result of the analysis by the analysis means that the function execution request does not include a header and therefore does not conform to the specifications of the predetermined communication protocol, the execution means transmits a response using the predetermined communication protocol and executes the specific function, at least on the condition that the function execution request is a request to execute the specific function. A communication device comprising:

9. A communication device as described in any one of claims 1, 3 to 4, claim 5 dependent on claim 1, claim 5 dependent on claim 3, claim 5 dependent on claim 4, and claims 6 to 8, further comprising a first determination means for determining whether the request to execute the function is a request to execute the specific function based on the results of the analysis by the analysis means.

10. The communication device according to claim 9, characterized in that the first determination means determines whether the request for execution of a function is a request for execution of the specific function based on whether the request for execution of the function contains information indicating that the request is a request for execution of the specific function.

11. 11. A communication device according to claim 1, wherein, when the analysis by the analysis means determines that the function execution request does not conform to the specifications of the specified communication protocol, if the function execution request is not a request to execute the specific function, the execution means executes error processing.

12. A communication device according to any one of claims 1 to 3, claim 5 dependent on claim 1, claim 5 dependent on claim 2, claim 5 dependent on claim 3, and claims 6 to 8, characterized in that if information required for communication using the specified communication protocol is not present in the function execution request, it is determined that the function execution request does not conform to the specifications of the specified communication protocol.

13. 13. The communication device according to claim 12, wherein the information required for communication according to the predetermined communication protocol is header information.

14. 14. The communication device according to claim 1, wherein the communication device is a printer.

15. 15. The communication device according to claim 1, wherein the predetermined communication protocol is HTTP (Hypertext Transfer Protocol).

16. A program for causing a computer to function as each of the means of the communication device according to any one of claims 1 to 15.

17. A method executed in a communication device capable of communicating with an information processing device, a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; and In the execution step, the function execution request is modified so as to conform to the specifications of the predetermined communication protocol, and the specific function is executed. A method characterized by:

18. A method executed in a communication device capable of communicating with an information processing device, comprising: a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; a first determination step of determining whether the function execution request is a request to execute the specific function based on a result of the analysis in the analysis step; and in the first determination step, determining whether the function execution request is a request for execution of the specific function based on whether the function execution request includes information indicating that the function execution request is a request for execution of the specific function; The information indicating that the request is for execution of the specific function is written as a Uniform Resource Identifier (URI). A method characterized by:

19. A method executed in a communication device capable of communicating with an information processing device, comprising: a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; a second determination step of determining whether the state of the communication device is in a state in which the specific function can be executed; and In the execution step, the function execution request is changed to conform to the specifications of the predetermined communication protocol, under the conditions that the function execution request is a request to execute the specific function and that the second determination step determines that the state of the communication device is a state in which the specific function can be executed. A method characterized by:

20. A method executed in a communication device capable of communicating with an information processing device, comprising: a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; and if the request for execution of the function does not include information required for communication using the predetermined communication protocol, it is determined that the request for execution of the function does not conform to the specifications of the predetermined communication protocol; the information required in the communication according to the predetermined communication protocol is header information, In the execution step, dummy information is set as the header information in the function execution request, thereby changing the function execution request to conform to the specifications of the predetermined communication protocol. A method characterized by:

21. A method executed in a communication device capable of communicating with an information processing device, comprising: a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; and the specific function is a function of causing the information processing device to execute a setting process for operating the communication device in a predetermined network configuration; A method characterized by:

22. A method executed in a communication device capable of communicating with an information processing device, comprising: a communication step of communicating with the information processing device; an analyzing step of analyzing a request for executing a function of the communication device using a predetermined communication protocol, the request being received from the information processing device via the communication step; an execution step of transmitting a response using the predetermined communication protocol and executing the specific function, at least on condition that the function execution request is a request to execute a specific function, when the result of the analysis in the analysis step shows that the function execution request does not conform to the specifications of the predetermined communication protocol; and In the executing step, if it is determined as a result of the analysis in the analyzing step that the function execution request does not include a header and therefore does not conform to the specifications of the predetermined communication protocol, a response is sent using the predetermined communication protocol and the specific function is executed, at least on the condition that the function execution request is a request to execute the specific function. A method characterized by:

Citation Information

Patent Citations

  • Communication protocol processing system

    JP1989286652A

  • server

    JP2005269008A

  • Built-in device and control method therefor

    JP2006085356A

  • Interconnection method and device using communication protocol

    JP2007265356A

  • Authentication device, authentication system, authentication method and program

    JP2013246799A