Go to the source code of this file.
Network API | |
typedef struct _PurpleNetworkListenData | PurpleNetworkListenData |
typedef void(* | PurpleNetworkListenCallback )(int listenfd, gpointer data) |
const unsigned char * | purple_network_ip_atoi (const char *ip) |
Converts a dot-decimal IP address to an array of unsigned chars. | |
void | purple_network_set_public_ip (const char *ip) |
Sets the IP address of the local system in preferences. | |
const char * | purple_network_get_public_ip (void) |
Returns the IP address of the local system set in preferences. | |
const char * | purple_network_get_local_system_ip (int fd) |
Returns the IP address of the local system. | |
const char * | purple_network_get_my_ip (int fd) |
Returns the IP address that should be used anywhere a public IP addresses is needed (listening for an incoming file transfer, etc). | |
void | purple_network_listen_map_external (gboolean map_external) |
Should calls to purple_network_listen() and purple_network_listen_range() map the port externally using NAT-PMP or UPnP? The default value is TRUE. | |
PurpleNetworkListenData * | purple_network_listen (unsigned short port, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data) |
Attempts to open a listening port ONLY on the specified port number. | |
PurpleNetworkListenData * | purple_network_listen_range (unsigned short start, unsigned short end, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data) |
Opens a listening port selected from a range of ports. | |
void | purple_network_listen_cancel (PurpleNetworkListenData *listen_data) |
This can be used to cancel any in-progress listener connection by passing in the return value from either purple_network_listen() or purple_network_listen_range(). | |
unsigned short | purple_network_get_port_from_fd (int fd) |
Gets a port number from a file descriptor. | |
gboolean | purple_network_is_available (void) |
Detects if there is an available network connection. | |
void * | purple_network_get_handle (void) |
Get the handle for the network system. | |
void | purple_network_init (void) |
Initializes the network subsystem. | |
void | purple_network_uninit (void) |
Shuts down the network subsystem. |
Definition in file network.h.
void* purple_network_get_handle | ( | void | ) |
Get the handle for the network system.
const char* purple_network_get_local_system_ip | ( | int | fd | ) |
Returns the IP address of the local system.
You probably want to use purple_network_get_my_ip() instead.
fd | The fd to use to help figure out the IP, or else -1. |
const char* purple_network_get_my_ip | ( | int | fd | ) |
Returns the IP address that should be used anywhere a public IP addresses is needed (listening for an incoming file transfer, etc).
If the user has manually specified an IP address via preferences, then this IP is returned. Otherwise the IP address returned by purple_network_get_local_system_ip() is returned.
fd | The fd to use to help figure out the IP, or -1. |
unsigned short purple_network_get_port_from_fd | ( | int | fd | ) |
Gets a port number from a file descriptor.
fd | The file descriptor. This should be a tcp socket. The current implementation probably dies on anything but IPv4. Perhaps this possible bug will inspire new and valuable contributors to Purple. |
const char* purple_network_get_public_ip | ( | void | ) |
Returns the IP address of the local system set in preferences.
This returns the value set via purple_network_set_public_ip(). You probably want to use purple_network_get_my_ip() instead.
const unsigned char* purple_network_ip_atoi | ( | const char * | ip | ) |
Converts a dot-decimal IP address to an array of unsigned chars.
For example, converts 192.168.0.1 to a 4 byte array containing 192, 168, 0 and 1.
ip | An IP address in dot-decimal notiation. |
gboolean purple_network_is_available | ( | void | ) |
Detects if there is an available network connection.
PurpleNetworkListenData* purple_network_listen | ( | unsigned short | port, | |
int | socket_type, | |||
PurpleNetworkListenCallback | cb, | |||
gpointer | cb_data | |||
) |
Attempts to open a listening port ONLY on the specified port number.
You probably want to use purple_network_listen_range() instead of this. This function is useful, for example, if you wanted to write a telnet server as a Purple plugin, and you HAD to listen on port 23. Why anyone would want to do that is beyond me.
This opens a listening port. The caller will want to set up a watcher of type PURPLE_INPUT_READ on the fd returned in cb. It will probably call accept in the watcher callback, and then possibly remove the watcher and close the listening socket, and add a new watcher on the new socket accept returned.
port | The port number to bind to. Must be greater than 0. | |
socket_type | The type of socket to open for listening. This will be either SOCK_STREAM for TCP or SOCK_DGRAM for UDP. | |
cb | The callback to be invoked when the port to listen on is available. The file descriptor of the listening socket will be specified in this callback, or -1 if no socket could be established. | |
cb_data | extra data to be returned when cb is called |
void purple_network_listen_cancel | ( | PurpleNetworkListenData * | listen_data | ) |
This can be used to cancel any in-progress listener connection by passing in the return value from either purple_network_listen() or purple_network_listen_range().
listen_data | This listener attempt will be canceled and the struct will be freed. |
void purple_network_listen_map_external | ( | gboolean | map_external | ) |
Should calls to purple_network_listen() and purple_network_listen_range() map the port externally using NAT-PMP or UPnP? The default value is TRUE.
map_external | Should the open port be mapped externally? |
PurpleNetworkListenData* purple_network_listen_range | ( | unsigned short | start, | |
unsigned short | end, | |||
int | socket_type, | |||
PurpleNetworkListenCallback | cb, | |||
gpointer | cb_data | |||
) |
Opens a listening port selected from a range of ports.
The range of ports used is chosen in the following manner: If a range is specified in preferences, these values are used. If a non-0 values are passed to the function as parameters, these values are used. Otherwise a port is chosen at random by the operating system.
This opens a listening port. The caller will want to set up a watcher of type PURPLE_INPUT_READ on the fd returned in cb. It will probably call accept in the watcher callback, and then possibly remove the watcher and close the listening socket, and add a new watcher on the new socket accept returned.
start | The port number to bind to, or 0 to pick a random port. Users are allowed to override this arg in prefs. | |
end | The highest possible port in the range of ports to listen on, or 0 to pick a random port. Users are allowed to override this arg in prefs. | |
socket_type | The type of socket to open for listening. This will be either SOCK_STREAM for TCP or SOCK_DGRAM for UDP. | |
cb | The callback to be invoked when the port to listen on is available. The file descriptor of the listening socket will be specified in this callback, or -1 if no socket could be established. | |
cb_data | extra data to be returned when cb is called |
void purple_network_set_public_ip | ( | const char * | ip | ) |
Sets the IP address of the local system in preferences.
This is the IP address that should be used for incoming connections (file transfer, direct IM, etc.) and should therefore be publicly accessible.
ip | The local IP address. |