From 2579afc89710565bea0b16aa894b61fbb7776f26 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Thu, 25 Jun 2009 17:43:28 +0200 Subject: [PATCH] s3-vlp: drastically shrink size and dependencies of the virtual line printer. This gets vlp from 13M down to 214K on my box. Guenther --- source3/Makefile.in | 17 ++++++----------- source3/printing/tests/vlp.c | 19 ++++++++----------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/source3/Makefile.in b/source3/Makefile.in index a6c918ef958b..c04b20574d0b 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1225,13 +1225,10 @@ NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \ $(LIBNDR_GEN_OBJ0) $(LIBNDR_GEN_OBJ1) @BUILD_INIPARSER@ -VLP_OBJ1 = printing/tests/vlp.o $(RPC_CLIENT_OBJ1) $(RPC_PARSE_OBJ2) $(RPC_CLIENT_OBJ) ../librpc/rpc/binding.o - -VLP_OBJ = $(VLP_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \ - $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(LIBMSRPC_GEN_OBJ) \ - $(READLINE_OBJ) $(POPT_LIB_OBJ) \ - $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ) \ - $(DISPLAY_SEC_OBJ) +VLP_OBJ = printing/tests/vlp.o \ + ../lib/util/util_tdb.o \ + $(LIBSAMBAUTIL_OBJ) \ + param/util.o RPC_OPEN_TCP_OBJ = torture/rpc_open_tcp.o \ $(LIBSMB_OBJ) \ @@ -2515,13 +2512,11 @@ bin/winbindd@EXEEXT@: $(BINARY_PREREQS) $(WINBINDD_OBJ) @BUILD_POPT@ @LIBTALLOC_ $(PASSDB_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \ $(ZLIB_LIBS) -bin/vlp@EXEEXT@: $(BINARY_PREREQS) $(VLP_OBJ) @LIBTALLOC_TARGET@ @LIBTDB_TARGET@ @LIBWBCLIENT_TARGET@ +bin/vlp@EXEEXT@: $(BINARY_PREREQS) $(VLP_OBJ) @LIBTDB_TARGET@ @echo "Linking $@" @$(CC) -o $@ $(VLP_OBJ) $(LDFLAGS) $(DYNEXP) \ $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_LIBS) \ - $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \ - $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) \ - $(ZLIB_LIBS) + $(LIBTDB_LIBS) @WINBIND_NSS@: $(BINARY_PREREQS) $(WINBIND_NSS_OBJ) @echo "Linking $@" diff --git a/source3/printing/tests/vlp.c b/source3/printing/tests/vlp.c index 5fc363f2bebb..48b71204d8cf 100644 --- a/source3/printing/tests/vlp.c +++ b/source3/printing/tests/vlp.c @@ -21,6 +21,10 @@ #include "includes.h" +#ifdef malloc +#undef malloc +#endif + #define PRINT_FIRSTJOB "100" static TDB_CONTEXT *tdb; @@ -215,7 +219,6 @@ static int print_command(int argc, char **argv) struct passwd *pw; TDB_DATA value, queue; struct vlp_job job; - int i; if (argc < 3) { printf("Usage: print \n"); @@ -228,18 +231,13 @@ static int print_command(int argc, char **argv) /* Create a job record */ - for (i = 2; i < argc; i++) { - fstrcat(job.jobname, argv[i]); - if (i < argc - 1) { - fstrcat(job.jobname, " "); - } - } + slprintf(job.jobname, sizeof(job.jobname) - 1, "%s", argv[2]); if (!(pw = getpwuid(getuid()))) { return 1; } - fstrcpy(job.owner, pw->pw_name); + slprintf(job.owner, sizeof(job.owner) - 1, "%s", pw->pw_name); job.jobid = next_jobnum(printer); job.size = 666; @@ -255,8 +253,7 @@ static int print_command(int argc, char **argv) /* Add job to end of queue */ - queue.dptr = (unsigned char *)SMB_MALLOC(value.dsize + - sizeof(struct vlp_job)); + queue.dptr = (unsigned char *)malloc(value.dsize + sizeof(struct vlp_job)); if (!queue.dptr) return 1; memcpy(queue.dptr, value.dptr, value.dsize); @@ -382,7 +379,7 @@ int main(int argc, char **argv) return 1; } - if (!strnequal(argv[1], "tdbfile", strlen("tdbfile"))) { + if (strncmp(argv[1], "tdbfile", strlen("tdbfile")) != 0) { usage(); return 1; } -- 2.34.1