Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/secure/udp/man.c b/secure/udp/man.c
new file mode 100644
index 0000000..88c4b57
--- /dev/null
+++ b/secure/udp/man.c
@@ -0,0 +1,98 @@
+#pragma strict_types
+#include <udp.h>
+#include <daemon.h>
+
+#define MAX_READ_FILE_LEN 50000
+
+// TEMPORARY
+
+#include <udp_language.h>
+#include <logging.h>
+
+#ifndef LOCAL_NAME
+#define LOCAL_NAME "MorgenGrauen"
+#endif
+
+#ifndef INETD_INVALID_ACCESS
+#define INETD_INVALID_ACCESS INTERMUDLOG("INVALID_ACCESS")
+#endif
+
+#ifndef INVALID_ACCESS
+#define INVALID_ACCESS(x) \
+           log_file(INETD_INVALID_ACCESS, \
+                    sprintf(INETD_INV_ACCESS_MSG "TI: %O PO: %O\n", \
+                            ctime()[4..15],this_interactive(), \
+                            previous_object()))
+#endif
+
+
+// END TEMPORARY
+
+void udp_man(mapping data)
+{
+  mapping pages;
+  int index;
+  string manpage,ret;
+  string|string* tmp;
+
+  if (previous_object()!=find_object(INETD))
+  {
+    INVALID_ACCESS(Man);
+    return;
+  }
+
+  manpage=data[DATA];
+  tmp=explode(manpage,"/");
+  if (sizeof(tmp)>1)
+  {
+    if (file_size(MAND_DOCDIR+manpage)>=0)
+      tmp=({tmp[<1],manpage});
+    else
+      tmp=({});
+  }
+  else
+    tmp=(string *)call_other(MAND,"locate",data[DATA],0);
+  pages=([]);
+  index=sizeof(tmp);
+  while(index--)
+  {
+    if (tmp[1][0..1]!="g.") pages[tmp[index]]=tmp[index-1];
+    index--;
+  }
+  switch(sizeof(pages))
+  {
+    case 0:
+      ret=sprintf(INETD_NO_MANPAGE,LOCAL_NAME,manpage);
+      break;
+    case 1:
+      tmp=m_indices(pages)[0];
+      ret=sprintf(INETD_MANPAGE_FOUND,LOCAL_NAME,pages[tmp]);
+      index=0;
+      while(manpage=read_file(MAND_DOCDIR+tmp,index))
+      {
+        ret+=manpage;
+        index+=MAX_READ_FILE_LEN;
+      }
+      break;
+    default:
+      ret=sprintf(INETD_MANPAGES,LOCAL_NAME,"",
+                  break_string(implode(m_values(pages)," "),78),"");
+      break;
+  }
+  INETD->_send_udp(data[NAME],
+                     ([
+                       REQUEST: REPLY,
+                       RECIPIENT: data[SENDER],
+                       ID: data[ID],
+                       DATA: ret
+                     ]));
+}
+
+string send_request(string mudname, string pagename)
+{
+  return (INETD->_send_udp(mudname,
+                             ([REQUEST: "man",
+                               DATA: pagename,
+                               SENDER: getuid(previous_object())]),1)||
+          sprintf(INETD_MAN_REQUESTED,pagename,mudname));
+}