summaryrefslogtreecommitdiff
path: root/japanese/skkfep/patches/patch-bb
diff options
context:
space:
mode:
Diffstat (limited to 'japanese/skkfep/patches/patch-bb')
-rw-r--r--japanese/skkfep/patches/patch-bb76
1 files changed, 76 insertions, 0 deletions
diff --git a/japanese/skkfep/patches/patch-bb b/japanese/skkfep/patches/patch-bb
new file mode 100644
index 00000000000..d3310515a3c
--- /dev/null
+++ b/japanese/skkfep/patches/patch-bb
@@ -0,0 +1,76 @@
+$NetBSD: patch-bb,v 1.1.1.1 1999/12/24 03:21:10 itohy Exp $
+
+--- connserv.c.orig Tue Jul 7 00:31:16 1998
++++ connserv.c Fri Dec 24 00:25:24 1999
+@@ -40,8 +40,33 @@
+ struct hostent *entry;
+ struct servent *serv;
+ struct protoent *proto;
+- int a1,a2,a3,a4;
+ char *hostname;
++#ifdef SKK_CONF /* use skk.conf */
++ FILE *conffp;
++ char line[128];
++ char hostbuf[128];
++ char *confhost = NULL;
++ int confport = 0;
++
++ if ((conffp = fopen(SKK_CONF, "r")) != NULL) {
++ char *p, *data;
++
++ while (fgets(line, sizeof line, conffp) != NULL) {
++ if ((p = strchr(line, '#')) != NULL)
++ *p = '\0';
++ if ((p = strtok(line, ": \t\n")) == NULL)
++ continue;
++ if ((data = strtok((char *) NULL, " \t\n")) == NULL)
++ continue;
++ if (!strcmp(p, "skkserv_host")) {
++ strcpy(hostbuf, data);
++ confhost = hostbuf;
++ } else if (!strcmp(p, "skkserv_port")) {
++ confport = atoi(data);
++ }
++ }
++ }
++#endif
+
+ serv = getservbyname(SKK_SERVICENAME,"tcp");
+ fillzero((char*)&hostaddr,sizeof(struct sockaddr_in));
+@@ -56,27 +81,27 @@
+ if (SKKServerHost)
+ hostname = SKKServerHost;
+ else if ((hostname = getenv("SKKSERVER")) == NULL) {
++#ifdef SKK_CONF
++ if ((hostname = confhost) == NULL)
++#endif
+ #ifdef SKK_SERVER_HOST
+ hostname = SKK_SERVER_HOST;
+ #else
+ return -1;
+ #endif
+ }
+- if ('0' <= *hostname && *hostname <= '9') {
+- if (sscanf(hostname,"%d.%d.%d.%d",&a1,&a2,&a3,&a4) != 4) {
+- return -1;
+- }
+- a1 = (a1<<24)|(a2<<16)|(a3<<8)|a4;
+- hostaddr.sin_addr.s_addr = htonl(a1);
+- }
+- else {
++ if ((hostaddr.sin_addr.s_addr = inet_addr(hostname)) == INADDR_NONE) {
+ if ((entry = gethostbyname(hostname)) == NULL) {
+ return -1;
+ }
+ bincopy(entry->h_addr, &hostaddr.sin_addr, entry->h_length);
+ }
+ hostaddr.sin_family = AF_INET;
+- hostaddr.sin_port = serv ? serv->s_port : htons(SKK_PORT_NUMBER);
++ hostaddr.sin_port =
++#ifdef SKK_CONF
++ confport ? htons(confport) :
++#endif
++ serv ? serv->s_port : htons(SKK_PORT_NUMBER);
+ if (connect(sock,(struct sockaddr *)&hostaddr,sizeof(struct sockaddr_in)) < 0) {
+ return -1;
+ }