|
- inet_client_addr
+ inet_client_addr()
inet
address of the remote connection
|
- inet_client_port
+ inet_client_port()
int4
port of the remote connection
|
- inet_server_addr
+ inet_server_addr()
inet
address of the local connection
|
- inet_server_port
+ inet_server_port()
int4
port of the local connection
- inet_client_addr and
- inet_server_addr return the IPv4 or IPv6 (if
- configured) address of the remote or local host connecting to the
- database, respectively. inet_client_port
- and inet_server_port return the port number
- of the remote or local host connecting to the database,
- respectively. If the connection is not a network connection,
- these functions will return NULL.
-
-
current_schema returns the name of the schema that is
at the front of the search path (or a null value if the search path is
+
+
+
+
+
+
+
+
+
+
+
+
+ inet_client_addr returns the IP address of the
+ current client, and inet_client_port returns the
+ port number.
+ inet_server_addr returns the IP address on which
+ the server accepted the current connection, and
+ inet_server_port returns the port number.
+ All these functions return NULL if the connection is via a Unix-domain
+ socket.
+
+
/*
* PostgreSQL type definitions for the INET and CIDR types.
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.50 2004/05/26 18:35:38 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.51 2004/06/13 19:56:50 tgl Exp $
*
* Jon Postel RIP 16 Oct 1998
*/
PG_RETURN_INET_P(network_in(src, 1));
}
-/* INET that the client is connecting from */
-Datum
-inet_client_addr(PG_FUNCTION_ARGS)
-{
- Port *port = MyProcPort;
-
- if (port == NULL)
- PG_RETURN_NULL();
-
- switch (port->raddr.addr.ss_family) {
- case AF_INET:
-#ifdef HAVE_IPV6
- case AF_INET6:
-#endif
- break;
- default:
- PG_RETURN_NULL();
- }
-
- PG_RETURN_INET_P(network_in(port->remote_host, 0));
-}
-
-
-/* port that the client is connecting from */
-Datum
-inet_client_port(PG_FUNCTION_ARGS)
-{
- Port *port = MyProcPort;
-
- if (port == NULL)
- PG_RETURN_NULL();
-
- PG_RETURN_INT32(DirectFunctionCall1(int4in, CStringGetDatum(port->remote_port)));
-}
-
-
-/* server INET that the client connected to */
-Datum
-inet_server_addr(PG_FUNCTION_ARGS)
-{
- Port *port = MyProcPort;
- char local_host[NI_MAXHOST];
- int ret;
-
- if (port == NULL)
- PG_RETURN_NULL();
-
- switch (port->laddr.addr.ss_family) {
- case AF_INET:
-#ifdef HAVE_IPV6
- case AF_INET6:
-#endif
- break;
- default:
- PG_RETURN_NULL();
- }
-
- local_host[0] = '\0';
-
- ret = getnameinfo_all(&port->laddr.addr, port->laddr.salen,
- local_host, sizeof(local_host),
- NULL, 0,
- NI_NUMERICHOST | NI_NUMERICSERV);
- if (ret)
- PG_RETURN_NULL();
-
- PG_RETURN_INET_P(network_in(local_host, 0));
-}
-
-
-/* port that the server accepted the connection on */
-Datum
-inet_server_port(PG_FUNCTION_ARGS)
-{
- Port *port = MyProcPort;
- char local_port[NI_MAXSERV];
- int ret;
-
- if (port == NULL)
- PG_RETURN_NULL();
-
- switch (port->laddr.addr.ss_family) {
- case AF_INET:
-#ifdef HAVE_IPV6
- case AF_INET6:
-#endif
- break;
- default:
- PG_RETURN_NULL();
- }
-
- local_port[0] = '\0';
-
- ret = getnameinfo_all(&port->laddr.addr, port->laddr.salen,
- NULL, 0,
- local_port, sizeof(local_port),
- NI_NUMERICHOST | NI_NUMERICSERV);
- if (ret)
- PG_RETURN_NULL();
-
- PG_RETURN_INT32(DirectFunctionCall1(int4in, CStringGetDatum(local_port)));
-}
-
/*
* INET address output function.
DirectFunctionCall1(network_broadcast, in),
Int32GetDatum(-1));
}
+
+
+/*
+ * IP address that the client is connecting from (NULL if Unix socket)
+ */
+Datum
+inet_client_addr(PG_FUNCTION_ARGS)
+{
+ Port *port = MyProcPort;
+ char remote_host[NI_MAXHOST];
+ int ret;
+
+ if (port == NULL)
+ PG_RETURN_NULL();
+
+ switch (port->raddr.addr.ss_family) {
+ case AF_INET:
+#ifdef HAVE_IPV6
+ case AF_INET6:
+#endif
+ break;
+ default:
+ PG_RETURN_NULL();
+ }
+
+ remote_host[0] = '\0';
+
+ ret = getnameinfo_all(&port->raddr.addr, port->raddr.salen,
+ remote_host, sizeof(remote_host),
+ NULL, 0,
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (ret)
+ PG_RETURN_NULL();
+
+ PG_RETURN_INET_P(network_in(remote_host, 0));
+}
+
+
+/*
+ * port that the client is connecting from (NULL if Unix socket)
+ */
+Datum
+inet_client_port(PG_FUNCTION_ARGS)
+{
+ Port *port = MyProcPort;
+ char remote_port[NI_MAXSERV];
+ int ret;
+
+ if (port == NULL)
+ PG_RETURN_NULL();
+
+ switch (port->raddr.addr.ss_family) {
+ case AF_INET:
+#ifdef HAVE_IPV6
+ case AF_INET6:
+#endif
+ break;
+ default:
+ PG_RETURN_NULL();
+ }
+
+ remote_port[0] = '\0';
+
+ ret = getnameinfo_all(&port->raddr.addr, port->raddr.salen,
+ NULL, 0,
+ remote_port, sizeof(remote_port),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (ret)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(DirectFunctionCall1(int4in, CStringGetDatum(remote_port)));
+}
+
+
+/*
+ * IP address that the server accepted the connection on (NULL if Unix socket)
+ */
+Datum
+inet_server_addr(PG_FUNCTION_ARGS)
+{
+ Port *port = MyProcPort;
+ char local_host[NI_MAXHOST];
+ int ret;
+
+ if (port == NULL)
+ PG_RETURN_NULL();
+
+ switch (port->laddr.addr.ss_family) {
+ case AF_INET:
+#ifdef HAVE_IPV6
+ case AF_INET6:
+#endif
+ break;
+ default:
+ PG_RETURN_NULL();
+ }
+
+ local_host[0] = '\0';
+
+ ret = getnameinfo_all(&port->laddr.addr, port->laddr.salen,
+ local_host, sizeof(local_host),
+ NULL, 0,
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (ret)
+ PG_RETURN_NULL();
+
+ PG_RETURN_INET_P(network_in(local_host, 0));
+}
+
+
+/*
+ * port that the server accepted the connection on (NULL if Unix socket)
+ */
+Datum
+inet_server_port(PG_FUNCTION_ARGS)
+{
+ Port *port = MyProcPort;
+ char local_port[NI_MAXSERV];
+ int ret;
+
+ if (port == NULL)
+ PG_RETURN_NULL();
+
+ switch (port->laddr.addr.ss_family) {
+ case AF_INET:
+#ifdef HAVE_IPV6
+ case AF_INET6:
+#endif
+ break;
+ default:
+ PG_RETURN_NULL();
+ }
+
+ local_port[0] = '\0';
+
+ ret = getnameinfo_all(&port->laddr.addr, port->laddr.salen,
+ NULL, 0,
+ local_port, sizeof(local_port),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (ret)
+ PG_RETURN_NULL();
+
+ PG_RETURN_DATUM(DirectFunctionCall1(int4in, CStringGetDatum(local_port)));
+}
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.335 2004/06/06 19:07:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.336 2004/06/13 19:56:51 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
DATA(insert OID = 911 ( inet_out PGNSP PGUID 12 f f t f i 1 2275 "869" _null_ inet_out - _null_ ));
DESCR("I/O");
-DATA(insert OID = 2196 ( inet_client_addr PGNSP PGUID 12 f f f f s 0 869 "" _null_ inet_client_addr - _null_ ));
-DESCR("Returns the INET address of the client connected to the backend");
-DATA(insert OID = 2197 ( inet_client_port PGNSP PGUID 12 f f f f s 0 23 "" _null_ inet_client_port - _null_ ));
-DESCR("Returns the client's port number for this connection");
-DATA(insert OID = 2198 ( inet_server_addr PGNSP PGUID 12 f f f f s 0 869 "" _null_ inet_server_addr - _null_ ));
-DESCR("Returns the INET address that the backend is using to service the connection");
-DATA(insert OID = 2199 ( inet_server_port PGNSP PGUID 12 f f f f s 0 23 "" _null_ inet_server_port - _null_ ));
-DESCR("Returns the servers's port number for this connection");
-
/* for cidr type support */
DATA(insert OID = 1267 ( cidr_in PGNSP PGUID 12 f f t f i 1 650 "2275" _null_ cidr_in - _null_ ));
DESCR("I/O");
DATA(insert OID = 1715 ( set_masklen PGNSP PGUID 12 f f t f i 2 869 "869 23" _null_ inet_set_masklen - _null_ ));
DESCR("change the netmask of an inet");
+DATA(insert OID = 2196 ( inet_client_addr PGNSP PGUID 12 f f f f s 0 869 "" _null_ inet_client_addr - _null_ ));
+DESCR("INET address of the client");
+DATA(insert OID = 2197 ( inet_client_port PGNSP PGUID 12 f f f f s 0 23 "" _null_ inet_client_port - _null_ ));
+DESCR("client's port number for this connection");
+DATA(insert OID = 2198 ( inet_server_addr PGNSP PGUID 12 f f f f s 0 869 "" _null_ inet_server_addr - _null_ ));
+DESCR("INET address of the server");
+DATA(insert OID = 2199 ( inet_server_port PGNSP PGUID 12 f f f f s 0 23 "" _null_ inet_server_port - _null_ ));
+DESCR("server's port number for this connection");
+
DATA(insert OID = 1686 ( numeric PGNSP PGUID 12 f f t f i 1 1700 "25" _null_ text_numeric - _null_ ));
DESCR("(internal)");
DATA(insert OID = 1688 ( text PGNSP PGUID 12 f f t f i 1 25 "1700" _null_ numeric_text - _null_ ));
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.241 2004/06/02 21:29:29 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.242 2004/06/13 19:56:52 tgl Exp $
*
*-------------------------------------------------------------------------
*/
void *dst, size_t size);
/* network.c */
-extern Datum inet_client_addr(PG_FUNCTION_ARGS);
-extern Datum inet_client_port(PG_FUNCTION_ARGS);
-extern Datum inet_server_addr(PG_FUNCTION_ARGS);
-extern Datum inet_server_port(PG_FUNCTION_ARGS);
extern Datum inet_in(PG_FUNCTION_ARGS);
extern Datum inet_out(PG_FUNCTION_ARGS);
extern Datum inet_recv(PG_FUNCTION_ARGS);
extern Datum inet_set_masklen(PG_FUNCTION_ARGS);
extern Datum network_scan_first(Datum in);
extern Datum network_scan_last(Datum in);
+extern Datum inet_client_addr(PG_FUNCTION_ARGS);
+extern Datum inet_client_port(PG_FUNCTION_ARGS);
+extern Datum inet_server_addr(PG_FUNCTION_ARGS);
+extern Datum inet_server_port(PG_FUNCTION_ARGS);
/* mac.c */
extern Datum macaddr_in(PG_FUNCTION_ARGS);