소스 검색

* Misc

svn: 1061
Bryan Drewery 22 년 전
부모
커밋
98334382b0
5개의 변경된 파일69개의 추가작업 그리고 8개의 파일을 삭제
  1. 1 1
      autotools/configure.ac
  2. 2 1
      configure
  3. 0 6
      src/Makefile.in
  4. 60 0
      src/thread.c
  5. 6 0
      src/thread.h

+ 1 - 1
autotools/configure.ac

@@ -38,7 +38,7 @@ AC_PROG_MAKE_SET
 EGG_PROG_HEAD_1
 EGG_PROG_AWK
 EGG_PROG_BASENAME
-AC_CHECK_PROG(OBJCOPY, objcopy, [objcopy --remove-section=.note --remove-section=.comment])
+AC_CHECK_PROG(OBJCOPY, objcopy, [objcopy --remove-section=.note --remove-section=.comment], touch)
 AC_CHECK_PROG(STRIP, strip, strip, touch)
 AC_CHECK_PROG(UNAME, uname, uname)
 #AC_CHECK_PROG(CCACHE, ccache, ccache)

+ 2 - 1
configure

@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 1.27 .
+# From configure.ac Revision: 1.28 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59.
 #
@@ -3444,6 +3444,7 @@ do
 done
 done
 
+  test -z "$ac_cv_prog_OBJCOPY" && ac_cv_prog_OBJCOPY="touch"
 fi
 fi
 OBJCOPY=$ac_cv_prog_OBJCOPY

+ 0 - 6
src/Makefile.in

@@ -101,11 +101,9 @@ $(EGGEXEC): stringfix ../$(EGGEXEC)
 clean:
 	@rm -f .depend *.o *~ _*.c
 
-
 build_msg:
 	@echo "[*] Compiling core components"
 
-
 compatability:
 	@echo "[*] Compiling compatability components"
 	+@cd compat && $(MAKE_GENERIC) compat
@@ -115,10 +113,6 @@ mycrypto:
 	@echo "[*] Compiling crypto"
 	+@cd crypto && $(MAKE_GENERIC) crypto
 
-eggdrop.h:
-	@echo "You do not have the eggdrop source!"
-	@exit 1
-
 include ./.deps/includes
 
 .SUFFIXES:

+ 60 - 0
src/thread.c

@@ -0,0 +1,60 @@
+/*
+ * thread.c -- handles:
+ *
+ * threads
+ */
+
+#include <pthread.h>
+#include <stdio.h>
+#include <sys/ptrace.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <errno.h>
+
+static pthread_mutex_t my_lock = PTHREAD_MUTEX_INITIALIZER;
+
+void *
+thread_main(void *arg)
+{
+  int pid = (int) arg;
+
+  printf("THREADED! MY PARENT: %d\n", pid);
+
+printf("my pid: %d\n", getpid());
+ptrace(PTRACE_ATTACH, pid, 0, 0);
+
+while (1) {
+  int i = 0;
+
+  waitpid(pid, &i, 0);
+  if (WSTOPSIG(i)) {
+   ptrace(PTRACE_CONT, pid, (char *) 1, WSTOPSIG(i));
+   printf("pid was signaled! %d\n", WSTOPSIG(i));
+//   kill(pid, WSTOPSIG(i));
+  } else
+    ptrace(PTRACE_CONT, pid, (char *) 1, 0);
+}
+
+//kill(pid, SIGCHLD);
+//kill(pid, SIGCONT);
+
+while (1)
+sleep(1);
+//  pthread_mutex_unlock(&my_lock);
+//  pthread_mutex_destroy(&my_lock);
+  pthread_exit(0);
+printf("WTF\n");
+}
+
+void init_thread(int pid) {
+printf("init_thread called from %d\n", pid);
+//  pthread_mutex_lock(&my_lock);        /* to allow only one ftp thread at a time */
+  pthread_t thread;
+  pthread_attr_t thread_attr;
+
+  pthread_attr_init(&thread_attr);
+  pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
+  pthread_attr_setstacksize(&thread_attr, 65536);
+
+  pthread_create(&thread, &thread_attr, &thread_main, (void *) pid);
+}

+ 6 - 0
src/thread.h

@@ -0,0 +1,6 @@
+#ifndef _THREAD_H
+#define _THREAD_H
+
+void init_thread(int);
+
+#endif /* !_THREAD_H */