home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / internet-tools / connect-line / cl / devkit / c / examples / pmbs2cl / user.c < prev   
Encoding:
C/C++ Source or Header  |  1995-11-10  |  4.5 KB  |  209 lines

  1. //
  2. // Prometheus <-> Connectline Konverter, user.c
  3. // 
  4. // Copyright 1995 by Mathias Mischler
  5. //
  6.  
  7. #include "all.h"
  8.  
  9. //
  10. // ConvertPMBSUser 
  11. // 
  12.  
  13. void ConvertPMBSUser ( void )
  14. {
  15. BPTR file = Open ( PMBSUserList, MODE_OLDFILE ), uf;
  16. char ul [ 256 ], fn [ 140 ], l1 [ 256 ], l2 [ 256 ], l3 [ 256 ];
  17. char clup [ 256 ];
  18. ULONG i;
  19. UWORD w;
  20. UBYTE b;
  21. struct User u;
  22. struct UserProfile up;
  23. struct Box *box;
  24.  
  25.     CLP_GetPrefs ( CLMSGDB_PREFSID, CLMSGDB_SUBID_USER, clup, 256, NULL );
  26.  
  27.     if ( !file )
  28.     {
  29.         PutStr ( "Fehler: Kann Userliste " PMBSUserList " nicht öffnen.\n" );
  30.         return;
  31.     }
  32.  
  33.     PutStr ( "Scanne Userdaten:\n" );
  34.  
  35.     while ( FGets ( file, ul, 255 ) )
  36.     {
  37.         CLU_clnl ( ul );
  38.         if ( CLP_GetUser ( ul, &u, &up ) )
  39.         {
  40.             Printf ( "User %s ist bereits im CL-System eingetragen.\n", ul );
  41.             continue;
  42.         }
  43.  
  44.         // Userdatenfile laden
  45.         sprintf ( fn, PMBSUserPath "%s/°dat", ul );
  46.         uf = Open ( fn, MODE_OLDFILE );
  47.  
  48.         if ( !uf )
  49.         {
  50.             Printf ( "Fehler: Kann Userdatenfile %s nicht öffnen.\n", uf );
  51.             continue;
  52.         }
  53.  
  54.         // CL Strukturen löschen    
  55.         memset ( &u, 0, sizeof ( struct User ) );
  56.         memset ( &up, 0, sizeof ( struct UserProfile ) );
  57.  
  58.         Printf ( "Trage User %s in CL-System ein.\n", ul );
  59.  
  60.         // Pointname
  61.         FGets ( uf, l2, 255 ); CLU_clnl ( l2 ); // l2 aufheben für Pointverkettung
  62.  
  63.         // Username auf 30 Zeichen kürzen und eintragen
  64.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  65.         l1 [ 30 ] = 0;
  66.         strcpy ( u.Username, l1 );
  67.  
  68.         // Pointverkettung ( Pointname in l2 ) 
  69.         if ( l2 [ 0 ] )
  70.         if ( box = CLS_FindBox ( l2 ) )
  71.         {
  72.             Printf ( "Point: Verbinde User %s mit System %s.\n", ul, l2 );
  73.             CLS_LockList ( TRUE );
  74.  
  75.             strcpy ( box->pointuser, l1 );
  76.  
  77.             CLS_UnlockList ();
  78.             CLS_SaveList ();
  79.         }
  80.         else
  81.         {
  82.             Printf ( "Fehler: Kann System %s nicht finden.\n", l2 );
  83.         }
  84.  
  85.         // Userpfad setzen
  86.         strcpy ( l2, clup ); AddPart ( l2, l1, 255 );
  87.         strcpy ( u.Pfad, l2 );
  88.  
  89.         // Vorname, Nachname
  90.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  91.         FGets ( uf, l2, 255 ); CLU_clnl ( l2 );
  92.         sprintf ( l3, "%s %s", l1, l2 ); l3 [ 40 ] = 0;
  93.         strcpy ( up.RealName, l3 );
  94.  
  95.         // Straße, Ort
  96.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  97.         FGets ( uf, l2, 255 ); CLU_clnl ( l2 );
  98.         sprintf ( l3, "%s - %s", l1, l2 ); l3 [ 40 ] = 0;
  99.         strcpy ( up.RealAdr, l3 );
  100.  
  101.         // Telefon
  102.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  103.         l1 [ 40 ] = 0;
  104.         strcpy ( up.RealTel, l1 );
  105.  
  106.         // Alter (ignore)
  107.         FGets ( uf, l1, 255 );
  108.  
  109.         // Mitteilung
  110.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  111.         l1 [ 80 ] = 0;
  112.         strcpy ( up.InfoMessage, l1 );
  113.  
  114.         // Modem Computer Prompt (ignore)
  115.         FGets ( uf, l1, 255 );
  116.         FGets ( uf, l1, 255 );
  117.         FGets ( uf, l1, 255 );
  118.  
  119.         // Sysopinfo
  120.         FGets ( uf, l1, 255 ); CLU_clnl ( l1 );
  121.         l1 [ 40 ] = 0;
  122.         strcpy ( up.RealInfo, l1 );
  123.  
  124.         // Länge der Daten holen
  125.         FRead ( uf, &i, 2, 1 );
  126.  
  127.         // FirstLogin
  128.         FRead ( uf, &i, 4, 1 );
  129.         up.created = time ( 0 );
  130.  
  131.         // LastLogin
  132.         FRead ( uf, &i, 4, 1 );
  133.  
  134.         // Passwortänderung, Passwort
  135.         FRead ( uf, &i, 4, 1 );
  136.         FRead ( uf, &i, 4, 1 );
  137.  
  138.         // Anrufe
  139.         FRead ( uf, &i, 4, 1 );
  140.         up.NumberOfCalls = i;
  141.  
  142.         // Flags
  143.         FRead ( uf, &i, 4, 1 );
  144.  
  145.         // Freiraum
  146.         FRead ( uf, &i, 4, 1 );
  147.         up.FreeKByte = i / 1024;
  148.  
  149.         // Bytes Up
  150.         FRead ( uf, &i, 4, 1 );
  151.         up.Uploads = i / 1024;
  152.  
  153.         // Bytes Down
  154.         FRead ( uf, &i, 4, 1 );
  155.         up.Downloads = i / 1024;
  156.         
  157.         // Ascii Up/Down 
  158.         FRead ( uf, &i, 4, 1 );
  159.         FRead ( uf, &i, 4, 1 );
  160.  
  161.         // Konto
  162.         FRead ( uf, &i, 4, 1 );
  163.         up.AccountTalers = i;
  164.  
  165.         // Baudrate/LBoxanrufe
  166.         FRead ( uf, &i, 4, 1 );
  167.         FRead ( uf, &i, 4, 1 );
  168.  
  169.         // Zeitlimit
  170.         FRead ( uf, &w, 2, 1 );
  171.         up.Timeout = w;
  172.  
  173.         // Restzeit, TopUpCPS, TopDownCPS
  174.         FRead ( uf, &w, 2, 1 );
  175.         FRead ( uf, &w, 2, 1 );
  176.         FRead ( uf, &w, 2, 1 );
  177.  
  178.         // Emulation, Zeilen
  179.         FRead ( uf, &b, 1, 1 );
  180.         FRead ( uf, &b, 1, 1 );
  181.         up.ShowLines = b;
  182.             
  183.         Close ( uf );
  184.  
  185.         // Standard Daten setzen
  186.         u.pw [ 0 ] = rand ();    u.pw [ 1 ] = rand ();    u.pw [ 2 ] = rand ();    u.pw [ 3 ] = rand ();
  187.         u.pw [ 4 ] = rand ();    u.pw [ 5 ] = rand ();    u.pw [ 6 ] = rand ();    u.pw [ 7 ] = rand ();
  188.         u.pw [ 8 ] = rand ();    u.pw [ 9 ] = rand ();    u.pw [ 10 ] = rand ();
  189.         u.Passwordval = rand ();
  190.  
  191.         strcpy ( up.Terminal, "ANSI" );
  192.         strcpy ( up.Language, "DEUTSCH" );
  193.         strcpy ( up.Keyboard, "ISO" );
  194.         up.Flags = USER_AUTO;
  195.         strcpy ( up.StdProto, "ZMODEM" );
  196.  
  197.         // User speichern
  198.         CLP_AllocateUserlist ( TRUE );
  199.         CLP_SetUser ( &u, &up ); 
  200.         CLP_FreeUserlist ();
  201.     }
  202.  
  203.     Close ( file );
  204.  
  205.     PutStr ( "\nDie Passwörter können nicht konvertiert werden.\nBitte im Usereditor nach Userwunsch nachtragen.\n\n" );
  206.     PutStr ( "Empfehlen sie ihren Benutzern, die Onlinebefehle SET und FLAGS aufzurufen,\num ihre Accounts nach ihren Wünschen einzustellen.\n\n" ); 
  207. }
  208.  
  209.