From d31ec2ab6193a16f53f6e9f96966d38c90c18733 Mon Sep 17 00:00:00 2001 From: ncpfs archive import Date: Tue, 28 Apr 2026 20:39:57 +0200 Subject: [PATCH] Import ncpfs 0.13 --- .downloads/ncpfs-0.13.tgz | Bin 0 -> 67313 bytes Changes | 9 +++++ Makefile | 6 +++- README | 13 +++---- ipx-0.75/Makefile | 8 ++--- kernel-1.2/src/ncplib_kernel.c | 2 +- ncpfs-0.12.lsm => ncpfs-0.13.lsm | 6 ++-- util/Makefile | 4 +-- util/ncplib.c | 24 +++++++++---- util/ncplib.h | 12 +++++-- util/ncpmount.c | 48 ++++++++++--------------- util/ncptest.c | 60 ++++++++++++++++++++++++------- 12 files changed, 120 insertions(+), 72 deletions(-) create mode 100644 .downloads/ncpfs-0.13.tgz create mode 100644 Changes rename ncpfs-0.12.lsm => ncpfs-0.13.lsm (84%) diff --git a/.downloads/ncpfs-0.13.tgz b/.downloads/ncpfs-0.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bcb86153dd774e72f500faf7599e11afdf02627 GIT binary patch literal 67313 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

XYXr|agglXfW36snpG_QMJo|@cg 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 D8uRvp literal 0 HcmV?d00001 diff --git a/Changes b/Changes new file mode 100644 index 0000000..0882828 --- /dev/null +++ b/Changes @@ -0,0 +1,9 @@ +I only began this file with ncpfs-0.12. If you're interested in older +versions, you can find them on linux01.gwdg.de:/pub/ncpfs/old. + +ncpfs-0.12 -> ncpfs-0.13 + +- support for automatic loading of ncpfs.o by kerneld. + Thanks to Steven N. Hirsch . +- A subtle problem in the read routines has been removed by Uwe Bonnes + . Thanks a lot. \ No newline at end of file diff --git a/Makefile b/Makefile index ee83bf3..3c5ff50 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,11 @@ SUBDIRS = util ipx-0.75 man SUBDIRS += kernel-1.2/src INCLUDES = -I$(TOPDIR)/kernel-1.2 -export INCLUDES BINDIR INTERM_BINDIR +# If you are using kerneld to autoload ncp support, +# uncomment this (kerneld is in linux since about 1.3.57): +# KERNELD = -DHAVE_KERNELD + +export INCLUDES BINDIR INTERM_BINDIR KERNELD all: for i in $(SUBDIRS); do make -C $$i; done diff --git a/README b/README index fe518f9..7136095 100644 --- a/README +++ b/README @@ -1,11 +1,6 @@ -This is version 0.12 of ncpfs, a free NetWare client filesystem for -Linux. - -I would like to invite you to write documentation. As those whose -native tongue is English might have noticed, my C is better than my -English. So I doubt that everything in the man/ subdirectory is -written very well. Please feel free to send me any comments about -that. +This is ncpfs, a free NetWare client filesystem for Linux. Besides +some little utilities it also contains nprint, which enables you to +print on NetWare print queues. INSTALLATION @@ -74,7 +69,7 @@ I do not want to leave those unmentioned, who have helped me with ncpfs. The most enthusiastic user and tester is certainly Uwe Bonnes -. Up to now he's the only one +. So far he's the only one who has contributed something, namely manpages and corretions to existing manpages. diff --git a/ipx-0.75/Makefile b/ipx-0.75/Makefile index f2a2a8a..02fd3aa 100644 --- a/ipx-0.75/Makefile +++ b/ipx-0.75/Makefile @@ -5,16 +5,16 @@ UTILS = $(INTERM_BINDIR)/ipx_configure $(INTERM_BINDIR)/ipx_interface \ all: $(UTILS) $(INTERM_BINDIR)/ipx_configure: ipx_configure.o - $(CC) -o $(INTERM_BINDIR)/ipx_configure ipx_configure.o + $(CC) -s -o $(INTERM_BINDIR)/ipx_configure ipx_configure.o $(INTERM_BINDIR)/ipx_interface: ipx_interface.o - $(CC) -o $(INTERM_BINDIR)/ipx_interface ipx_interface.o + $(CC) -s -o $(INTERM_BINDIR)/ipx_interface ipx_interface.o $(INTERM_BINDIR)/ipx_internal_net: ipx_internal_net.o - $(CC) -o $(INTERM_BINDIR)/ipx_internal_net ipx_internal_net.o + $(CC) -s -o $(INTERM_BINDIR)/ipx_internal_net ipx_internal_net.o $(INTERM_BINDIR)/ipx_route: ipx_route.o - $(CC) -o $(INTERM_BINDIR)/ipx_route ipx_route.o + $(CC) -s -o $(INTERM_BINDIR)/ipx_route ipx_route.o dep: $(CPP) -M $(INCLUDES) *.c > .depend diff --git a/kernel-1.2/src/ncplib_kernel.c b/kernel-1.2/src/ncplib_kernel.c index e89fdd3..f163f26 100644 --- a/kernel-1.2/src/ncplib_kernel.c +++ b/kernel-1.2/src/ncplib_kernel.c @@ -583,7 +583,7 @@ ncp_read(struct ncp_server *server, const char *file_id, *bytes_read = ntohs(ncp_reply_word(server, 0)); - memcpy_tofs(target, ncp_reply_data(server, 2), *bytes_read); + memcpy_tofs(target, ncp_reply_data(server, 2+(offset&1)), *bytes_read); ncp_unlock_server(server); return 0; diff --git a/ncpfs-0.12.lsm b/ncpfs-0.13.lsm similarity index 84% rename from ncpfs-0.12.lsm rename to ncpfs-0.13.lsm index 4e884ed..4e237fd 100644 --- a/ncpfs-0.12.lsm +++ b/ncpfs-0.13.lsm @@ -1,6 +1,6 @@ Begin3 Title: ncpfs -Version: 0.12 +Version: 0.13 Entered-date: 14. January 1996 Description: With ncpfs you can mount volumes of your novell server under Linux. You need kernel 1.2.x or @@ -11,7 +11,7 @@ Author: lendecke@namu01.gwdg.de (Volker Lendecke) Maintained-by: lendecke@namu01.gwdg.de (Volker Lendecke) Primary-site: linux01.gwdg.de:/pub/ncpfs Alternate-site: sunsite.unc.edu:/pub/system/Filesystems/ - ~66k ncpfs-0.12.tgz - ~ 1k ncpfs-0.12.lsm + ~67k ncpfs-0.13.tgz + ~ 1k ncpfs-0.13.lsm Copying-policy: GPL End diff --git a/util/Makefile b/util/Makefile index cf5b50f..b5ea70c 100644 --- a/util/Makefile +++ b/util/Makefile @@ -6,7 +6,7 @@ UTIL_EXECS = ncpmount ncpumount nprint slist pqlist UTILS = $(addprefix $(INTERM_BINDIR)/,$(UTIL_EXECS)) UIDUTILS = ncpmount ncpumount -CFLAGS = -Wall $(INCLUDES) -O2 +CFLAGS = -Wall $(INCLUDES) -O2 $(KERNELD) CC = gcc all: $(UTILS) ncptest @@ -17,7 +17,7 @@ install: all for i in $(UIDUTILS); do chmod 4755 $(BINDIR)/$$i; done $(UTILS): $(addsuffix .o,$(UTIL_EXECS)) ncplib.o - $(CC) -o $@ $(addsuffix .o,$(notdir $@)) ncplib.o + $(CC) -s -o $@ $(addsuffix .o,$(notdir $@)) ncplib.o ncplib.o: ncplib.c ncplib.h $(CC) $(CFLAGS) -finline-functions -c ncplib.c diff --git a/util/ncplib.c b/util/ncplib.c index c35c9cc..9d538f7 100644 --- a/util/ncplib.c +++ b/util/ncplib.c @@ -1306,6 +1306,7 @@ ncp_initialize(struct ncp_conn *conn, } errno = EINVAL; + memzero(*conn); while (i < *argc) { @@ -2272,14 +2273,22 @@ ncp_open_create_file_or_subdir(struct ncp_conn *conn, int ncp_initialize_search(struct ncp_conn *conn, - struct nw_info_struct *dir, - struct nw_search_sequence *target) + const struct nw_info_struct *dir, + int namespace, + struct ncp_search_seq *target) { int result; + if ((namespace < 0) || (namespace > 255)) + { + return EINVAL; + } + + memzero(*target); + ncp_init_request(conn); ncp_add_byte(conn, 2); /* subfunction */ - ncp_add_byte(conn, 0); /* dos name space */ + ncp_add_byte(conn, namespace); ncp_add_byte(conn, 0); /* reserved */ ncp_add_handle_path(conn, dir->volNumber, dir->DosDirNum, 1, NULL); @@ -2289,7 +2298,8 @@ ncp_initialize_search(struct ncp_conn *conn, return result; } - memcpy(target, ncp_reply_data(conn, 0), sizeof(*target)); + memcpy(&(target->s), ncp_reply_data(conn, 0), sizeof(target->s)); + target->namespace = namespace; ncp_unlock_conn(conn); return 0; @@ -2298,18 +2308,18 @@ ncp_initialize_search(struct ncp_conn *conn, /* Search for everything */ int ncp_search_for_file_or_subdir(struct ncp_conn *conn, - struct nw_search_sequence *seq, + struct ncp_search_seq *seq, struct nw_info_struct *target) { int result; ncp_init_request(conn); ncp_add_byte(conn, 3); /* subfunction */ - ncp_add_byte(conn, 0); /* dos name space */ + ncp_add_byte(conn, seq->namespace); ncp_add_byte(conn, 0); /* data stream (???) */ ncp_add_word(conn, 0xffff); /* Search attribs */ ncp_add_dword(conn, RIM_ALL); /* return info mask */ - ncp_add_mem(conn, seq, 9); + ncp_add_mem(conn, &(seq->s), 9); ncp_add_byte(conn, 2); /* 2 byte pattern */ ncp_add_byte(conn, 0xff); /* following is a wildcard */ ncp_add_byte(conn, '*'); diff --git a/util/ncplib.h b/util/ncplib.h index 4bc2076..9cc32f0 100644 --- a/util/ncplib.h +++ b/util/ncplib.h @@ -67,6 +67,11 @@ struct ncp_conn_spec { char password[NCP_BINDERY_NAME_LEN]; }; +struct ncp_search_seq { + struct nw_search_sequence s; + int namespace; +}; + /* ncp_initialize is the main entry point for user programs which want to connect to a NetWare Server. It looks for -S, -U, -P and -n in the argument list, opens the connection and removes the arguments @@ -257,12 +262,13 @@ ncp_open_create_file_or_subdir(struct ncp_conn *conn, int ncp_initialize_search(struct ncp_conn *conn, - struct nw_info_struct *dir, - struct nw_search_sequence *target); + const struct nw_info_struct *dir, + int namespace, + struct ncp_search_seq *target); int ncp_search_for_file_or_subdir(struct ncp_conn *conn, - struct nw_search_sequence *seq, + struct ncp_search_seq *seq, struct nw_info_struct *target); int diff --git a/util/ncpmount.c b/util/ncpmount.c index 5079390..5dac6e9 100644 --- a/util/ncpmount.c +++ b/util/ncpmount.c @@ -3,6 +3,16 @@ * * Copyright (C) 1995 by Volker Lendecke * + * 1/20/96 - Steven N. Hirsch (hirsch@emba.uvm.edu) + * + * If the ncpfs support is not loaded and we are using kerneld to + * autoload modules, then we don't want to do it here. I added + * a conditional which leaves out the test and load code. + * + * Even if we _do_ want ncpmount to load the module, passing a + * fully-qualified pathname to insmod causes it to bypass a + * path search. This may lead to ncpfs.o not being found on + * some systems. */ #include @@ -41,14 +51,15 @@ static void str_upper(char *name); static void usage(void); static void help(void); +#ifndef HAVE_KERNELD + /* Returns 0 if the filesystem is in the kernel after this routine completes */ static int load_ncpfs(void) { - FILE *fver, *ffs; + FILE *ffs; char s[1024]; - char modname[1024]; char *p, *p1; pid_t pid; int status; @@ -81,33 +92,6 @@ load_ncpfs(void) { return 0; } - fver = fopen("/proc/version", "r"); - if (fver == NULL) - { - perror("Error: \"/proc/version\" could not be read:"); - return -1; - } - fgets(s, 1024, fver); - fclose(fver); - p = strstr(s, "version "); - - if (p == NULL) - { - version_error: - fprintf(stderr, "Error: Unable to determine the Linux version" - "from \"/proc/version\n"); - return -1; - } - - p = strchr(p, ' ') + 1; - p1 = strchr(p, ' '); - if (p1 == NULL) - { - goto version_error; - } - strcpy(modname, "/lib/modules/"); - strncat(modname, p, p1 - p); - strcat(modname, "/ncpfs.o"); /* system() function without signal handling, from Stevens */ @@ -118,7 +102,7 @@ load_ncpfs(void) else if (pid == 0) { /* child */ - execl("/sbin/insmod", "insmod", modname, NULL); + execl("/sbin/insmod", "insmod", "ncpfs", NULL); _exit(127); /* execl error */ } else @@ -136,6 +120,8 @@ load_ncpfs(void) return status; } +#endif /* HAVE_KERNELD */ + /* Check whether user is allowed to mount on the specified mount point */ static int mount_ok(struct stat *st) @@ -345,6 +331,7 @@ main(int argc, char *argv[]) exit(1); } +#ifndef HAVE_KERNEL /* Check if the ncpfs filesystem is in the kernel. If not, attempt * to load the ncpfs module */ if (load_ncpfs() != 0) @@ -352,6 +339,7 @@ main(int argc, char *argv[]) fprintf(stderr, "Error: Unable to load ncpfs, exiting...\n"); exit(1); } +#endif data.version = NCP_MOUNT_VERSION; data.mounted_uid = conn_uid; diff --git a/util/ncptest.c b/util/ncptest.c index 30ed9b4..6443a77 100644 --- a/util/ncptest.c +++ b/util/ncptest.c @@ -96,24 +96,60 @@ test_print(struct ncp_conn *conn) } void -main(void) +test_ls(struct ncp_conn *server) +{ + struct nw_info_struct sys; + struct nw_info_struct public; + struct ncp_search_seq seq; + struct nw_info_struct found; + int res; + + if (ncp_do_lookup(server, NULL, "SYS", &sys) != 0) + { + printf("lookup error\n"); + return; + } + if (ncp_do_lookup(server, &sys, "PUBLIC", &public) != 0) + { + printf("lookup public error\n"); + return; + } + if (ncp_initialize_search(server, &public, 4, &seq) != 0) + { + printf("init error\n"); + return; + } + while ((res=ncp_search_for_file_or_subdir(server,&seq,&found)) == 0) + { + printf("found %s: %s\n", + (found.attributes & aDIR) ? "dir " : "file", + found.entryName); + } + + if (res == 0xfe) + { + printf("result: no more files\n"); + } + else + { + printf("other error: %x\n", res); + } + return; +} + +int +main(int argc, char *argv[]) { struct ncp_conn conn; - struct ncp_conn_spec *spec; - if ((spec = ncp_find_conn_spec("NW311", "me", "", 0)) == NULL) + if (ncp_initialize(&conn, &argc, argv, 1) != 0) { - perror("could not find spec"); - exit(1); + perror("ncp_initialize"); + return 1; } - if (ncp_open(&conn, NULL) != 0) - { - perror("ncp_open"); - exit(1); - } - - test_print(&conn); + test_ls(&conn); ncp_close(&conn); + return 0; }