comparison src/process.c @ 49114:c87af62cc6b4

(format-network-address): Added optional OMIT-PORT arg. Callers changed.
author Kim F. Storm <storm@cua.dk>
date Wed, 08 Jan 2003 15:35:03 +0000
parents 32c767302a23
children 938f153410ae
comparison
equal deleted inserted replaced
49113:fd13501a746f 49114:c87af62cc6b4
1050 } 1050 }
1051 #endif 1051 #endif
1052 1052
1053 #ifdef HAVE_SOCKETS 1053 #ifdef HAVE_SOCKETS
1054 DEFUN ("format-network-address", Fformat_network_address, Sformat_network_address, 1054 DEFUN ("format-network-address", Fformat_network_address, Sformat_network_address,
1055 1, 1, 0, 1055 1, 2, 0,
1056 doc: /* Convert network ADDRESS from internal format to a string. 1056 doc: /* Convert network ADDRESS from internal format to a string.
1057 Returns nil if format of ADDRESS is invalid. */) 1057 If optional second argument OMIT-PORT is non-nil, don't include a port
1058 (address) 1058 number in the string; in this case, interpret a 4 element vector as an
1059 Lisp_Object address; 1059 IP address. Returns nil if format of ADDRESS is invalid. */)
1060 (address, omit_port)
1061 Lisp_Object address, omit_port;
1060 { 1062 {
1061 if (NILP (address)) 1063 if (NILP (address))
1062 return Qnil; 1064 return Qnil;
1063 1065
1064 if (STRINGP (address)) /* AF_LOCAL */ 1066 if (STRINGP (address)) /* AF_LOCAL */
1066 1068
1067 if (VECTORP (address)) /* AF_INET */ 1069 if (VECTORP (address)) /* AF_INET */
1068 { 1070 {
1069 register struct Lisp_Vector *p = XVECTOR (address); 1071 register struct Lisp_Vector *p = XVECTOR (address);
1070 Lisp_Object args[6]; 1072 Lisp_Object args[6];
1071 1073 int nargs, i;
1072 if (p->size != 5) 1074
1075 if (!NILP (omit_port) && (p->size == 4 || p->size == 5))
1076 {
1077 args[0] = build_string ("%d.%d.%d.%d");
1078 nargs = 4;
1079 }
1080 else if (p->size == 5)
1081 {
1082 args[0] = build_string ("%d.%d.%d.%d:%d");
1083 nargs = 5;
1084 }
1085 else
1073 return Qnil; 1086 return Qnil;
1074 1087
1075 args[0] = build_string ("%d.%d.%d.%d:%d"); 1088 for (i = 0; i < nargs; i++)
1076 args[1] = p->contents[0]; 1089 args[i+1] = p->contents[i];
1077 args[2] = p->contents[1]; 1090 return Fformat (nargs+1, args);
1078 args[3] = p->contents[2];
1079 args[4] = p->contents[3];
1080 args[5] = p->contents[4];
1081 return Fformat (6, args);
1082 } 1091 }
1083 1092
1084 if (CONSP (address)) 1093 if (CONSP (address))
1085 { 1094 {
1086 Lisp_Object args[2]; 1095 Lisp_Object args[2];
1253 { 1262 {
1254 Lisp_Object port = Fplist_get (p->childp, QCservice); 1263 Lisp_Object port = Fplist_get (p->childp, QCservice);
1255 if (INTEGERP (port)) 1264 if (INTEGERP (port))
1256 port = Fnumber_to_string (port); 1265 port = Fnumber_to_string (port);
1257 if (NILP (port)) 1266 if (NILP (port))
1258 port = Fformat_network_address (Fplist_get (p->childp, QClocal)); 1267 port = Fformat_network_address (Fplist_get (p->childp, QClocal), Qnil);
1259 sprintf (tembuf, "(network %s server on %s)\n", 1268 sprintf (tembuf, "(network %s server on %s)\n",
1260 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), 1269 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),
1261 (STRINGP (port) ? (char *)SDATA (port) : "?")); 1270 (STRINGP (port) ? (char *)SDATA (port) : "?"));
1262 insert_string (tembuf); 1271 insert_string (tembuf);
1263 } 1272 }
1271 host = Fplist_get (p->childp, QCservice); 1280 host = Fplist_get (p->childp, QCservice);
1272 if (INTEGERP (host)) 1281 if (INTEGERP (host))
1273 host = Fnumber_to_string (host); 1282 host = Fnumber_to_string (host);
1274 } 1283 }
1275 if (NILP (host)) 1284 if (NILP (host))
1276 host = Fformat_network_address (Fplist_get (p->childp, QCremote)); 1285 host = Fformat_network_address (Fplist_get (p->childp, QCremote), Qnil);
1277 sprintf (tembuf, "(network %s connection to %s)\n", 1286 sprintf (tembuf, "(network %s connection to %s)\n",
1278 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"), 1287 (DATAGRAM_CHAN_P (XINT (p->infd)) ? "datagram" : "stream"),
1279 (STRINGP (host) ? (char *)SDATA (host) : "?")); 1288 (STRINGP (host) ? (char *)SDATA (host) : "?"));
1280 insert_string (tembuf); 1289 insert_string (tembuf);
1281 } 1290 }