› Forums › Rechercher
Résultats de la recherche sur « morphos »
-
J’ai enfin trouvé comment mettre à chaque fois le nouveau kernel.
J’ai installer la edgy et comme le mkvmlinuz de la edgy fonctionne, j’ai pu créer le kernel 2.6.17-10 ensuite la mise a jour vers la 2.6.17-12 jusque-là c’est nickel.
Ensuite, j’ai placé feisty dans les sources.list
J’ai d’abord fait sudo apt-get update et j’ai coupé l’environnement graphique en faisant sudo /etc/init.d/gdm stop
Je fais Ctrl + Alt + F1 pour m’identifier et mettre mon mot de passe.
Je fais la commande sudo su pour être en super utilisatteur et je fais sudo apt-get update.
Je récupère le nouveau kernel avec la commande :
apt-get install linux-headers
apt-get install linux-image
apt-get install linux-recovered-modules comme j’ai la version mkvmlinuz_23ubuntu2.powerpc.deb d’installé il me crée mon nouveau noyau 2.6.20-17
Ensuite sous la console, je tape apt-get upgrade et pour finir apt-get dist-upgrade
Une fois l’action fini, je test en remettant l’environnement graphique.
/etc/init.d/gdm start
Il me demande de booter et sous Morphos je mount la partition ubuntu pour prendre le kernel fraîchement créé pour le placer dans mon boot en changeant la ligne du bootmenu pour qu’il prenne le kernel vmlinuz-2.6.20-17-powerpc
Je reboot pour lancer ubuntu je vais dans un terminal pour effectuer le test en tapant :
cat /proc/version et il m’indique bien le kernel feisty fawn 2.6.20-17
Je vais dans synaptic pour ensuite enlever l’ancien kernel 2.6.17-12-powerpc
Pour passer à la version supérieure, il suffit de remettre le mkvmlinuz_23ubuntu2_powerpc.deb
Changer la sources.list en plaçant gutsy a la place de feisty et de reproduire la même demarche, jusqu’a la mise à jour suivante.
Pour avoir toujours le dernier kernel 😉
C’était l’astuce du jour !L'Amiga c'est plus fort que toi !
-
ah bah moi c’est pire encore, j’utilise sur le morphos un clavier de rack serveur:
https://fr.rs-online.com/web/p/claviers/1783504Sinon sur le pc, un mercury keyz de chez glabs qui passe assez bien sur FS-UAE (mais j’ai que alt de gauche de reconnu, je corrigerais plus tard en corrigeant les mapping de touches ).
https://www.the-g-lab.tech/produit/keyz-mercury-blanc/ -
en plus on se plaint du layout amiga qui correspond pas si adaptateur clavier;
mais je viens de me rendre compte que sur mon clavier usb branché au macmini morphos, j’ai pas de touche étoile nul part…. pour coder ça va être fun….
-
oui alors je précise, j’ai monté:
pour compiler tester direct du workbench : FS-UAE => Amiga1200
pour les commandes shell en ssh : Linux => Amiga 1200
pour git : MacG4 Morphos => Amiga 1200pourquoi, parce que linux bug sur les création modif de fichiers, la commande git marche pas du tout (n’arrive pas à écrire les fichiers), et les dates s’affichent de façon très random, donc je devine que c’est un problème de timestamp incohérent.
Et donc morphos parce qu’avec amiga netfs ça marche au poil pour git.
et l’inverse
pour les échanges de fichiers : Amiga 1200 <=> Linux (en sftp, ssh ou ftp)
Samba, rien à en tirer c’est mort, et NFS pas mieux.
-
Bon ben ça m’a saoulé….
et quand ça m’saoule, j’installe tout jusqu’à trouver un truc qui marche…
et bah le scoop ben c’est pas samba 😀alors pour l’info, amigassh fonctionne presque bien , et amiganetfs seulement entre miga et miga et morphos et miga.
si on secoue tout ce beau monde on y arrive presque 😀Attachments:
-
Salut à tous,
J’avais vu dans les news il y a quelques mois sur AI, l’existence d’un client natif MorphOS pour le service DynDNS.
En faisant des recherches sur Google, je n’ai malheureusement pas réussi à retrouver la trace de ce programme.
-
J’ai un Pegasos II G4 révision 2b5 avec Morphos 3.18, je pense que c’est possible si j’ai les instructions de compilations, car j’utilise gcc et je ne connais pas tout, j’ai juste compiler un Hello World. 🙂
Eh bien, tu tapes « make » et voilà 🙂
En pratique il faut avoir les bons répertoires à côté (le truc buildait pour plusieurs archis: AmigaOS, CaOS et MorphOS). Il faut vapor toolkit et VSSL qui sont dispo sur mes repo aussi. Sinon postez dans le thread ici ou sur https://github.com/zapek/Voyager/discussions , je regarderai.
Actuellement je suis occupé avec https://xeres.io
-
Il faudrait un émulateur super nintendo et l’emulateur cd32 sur Morphos, car il manque des tas de choses
L'Amiga c'est plus fort que toi !
-
Je veux bien tenter de le compiler sous Morphos et 68k
Après, le mettre à jour, car voyager c’était top niveau, fluidité, j’avais même acheté la clé d’enregistrement.Pour compiler il compile. Mais bon, j’ai un vieux setup sur MorphOS 1.5 (le fameux qui n’est jamais sorti). Les Amigas je sais même pas si ils bootent.
Il manque probablement des choses.
J’ai un Pegasos II G4 révision 2b5 avec Morphos 3.18, je pense que c’est possible si j’ai les instructions de compilations, car j’utilise gcc et je ne connais pas tout, j’ai juste compiler un Hello World. 🙂
L'Amiga c'est plus fort que toi !
-
J’ai un Pegasos II G4 révision 2b5 avec Morphos 3.18, je pense que c’est possible si j’ai les instructions de compilations, car j’utilise gcc et je ne connais pas tout, j’ai juste compiler un Hello World. 🙂
L'Amiga c'est plus fort que toi !
-
J’ai enfin réussi à l’installer sur disque dur, en mettant le Live de Freevo, j’ai tapé la commande :
boot cd hdfreevo
Ensuite installation sur le HD
Il demande où se trouve la partition /dev/hdxx
J’ai placé /dev/hda8
la partition swap en hda9
ensuite il formate, il installe, il faut attendre
après un moment il nous propose de changer dans /etc/fstab
/dev/ROOT et /dev/SWAP
j’ai donc mis :
/dev/hda8 et /dev/hda9
une fois fini Ctrl + O pour sauver et Ctrl + X pour quitter
Après un reboot, je remarque que l’affichage est décalé…
Sous Morphos, je mount la partition Freevo et je vais dans /etc/X11/xorg.conf
j’installe mes paramètres d’écrans avec un éditeur de texte, je reboot et je constate que le décalage est encore là…
Dû coup, pour ne plus avoir le décalage de l’écran en « 800×600 » il faut enlever cette option ou placer un # devant.# Option « TVOutput » « PAL »
Vous ne pouvez pas changer la résolution, car il prend le 800×600.
Après pour la configuration, c’est assez compliqué.L'Amiga c'est plus fort que toi !
-
Je veux bien tenter de le compiler sous Morphos et 68k
Après, le mettre à jour, car voyager c’était top niveau, fluidité, j’avais même acheté la clé d’enregistrement. 😋👍🏻Pour compiler il compile. Mais bon, j’ai un vieux setup sur MorphOS 1.5 (le fameux qui n’est jamais sorti). Les Amigas je sais même pas si ils bootent.
Il manque probablement des choses.
-
Je veux bien tenter de le compiler sous Morphos et 68k
Après, le mettre à jour, car voyager c’était top niveau, fluidité, j’avais même acheté la clé d’enregistrement. 😋👍🏻L'Amiga c'est plus fort que toi !
-
J’ai tenté d’installer un cross compilo MorphOS sur mac, mais ça déconne pendant le build. Ca fait tellement longtemps que j’avais pas touché à ça. J’ai trouvé que ça qui date de 5-7 (!) ans. Peut être qu’il y aurait plus récent qui marcherait ?
-
Beaucoup de références à Morphos dans le code. There are 2 archives ? One with the "Classic Amiga" 68020+ build and another one with the PPC native MorphOS build et : It runs on 68k, coldfire and PPC..En regardant les sources (l’url plus haut contient les sources de Voyager), on peut voir cette portion de code dans http.c :
#if USE_SSL if( un->ssl == 1 && un->viaproxy ) { snprintf( buffer, sizeof(buffer), "CONNECT %s:%d HTTP/1.0\r\nUser-Agent: %s\r\n", un->purl.host, un->purl.port, vuseragent ); bp = strchr( buffer, 0 ); if( useproxyauth ) { strcpy( bp, "Proxy-Authorization: Basic " ); strcat( bp, proxyauth ); strcat( bp, "\r\n" ); bp = strchr( bp, 0 ); } strcpy( bp, "\r\n" ); un->ssl = 2; un->viaproxy = 0; } else if( un->ssl && !un->sslh ) { un->protocolstate = HTTP_DO_SSL_HANDSHAKE; // do SSL handshaking first DL( DEBUG_INFO, db_http, bug( "redoing for SSL handshake\n" )); return; } else #endif /* USE_SSL */http://aminet.net/package/util/libs/AmiSSL-5.16-SDK
http://aminet.net/package/util/libs/AmiSSL-5.16-OS3Il ne doit pas falloir beaucoup de choses à un connaisseur du C pour adapter amissl et les normes modernes (TLS) à Voyager 3.x.
Il y a des références à miami_ssl.h dans network.h aussi (A l'époque, Miami et son module ssl était omiprésent sur les amiga 68k connectés, il était plus simple que amiTCP, avant l'arrivée de Genesis)Le contenu de vssl.h :
/************************************************************************** ======================= The Voyager Web Browser ======================= Copyright (C) 1995-2001 by Oliver Wagner <[email protected]> All Rights Reserved Parts Copyright (C) by David Gerber <[email protected]> Jon Bright <[email protected]> Matt Sealey <[email protected]> **************************************************************************/ #ifndef VOYAGER_VSSL_H #define VOYAGER_VSSL_H struct VSSL_CacheInfo { int sess_number; int sess_connect; int sess_connect_good; int sess_accept; int sess_accept_good; int sess_hits; int sess_cb_hits; int sess_misses; int sess_timeouts; }; #if ( !defined(__GNUC__) && !defined(__DCC__) ) #pragma libcall VSSLBase VSSL_Id 1e 0 #pragma libcall VSSLBase VSSL_Create_CTX 24 0 #pragma libcall VSSLBase VSSL_Free_CTX 2a 801 #pragma libcall VSSLBase VSSL_Connect 30 0802 #pragma libcall VSSLBase VSSL_Close 36 801 #pragma libcall VSSLBase VSSL_GetCipher 3c 801 #pragma libcall VSSLBase VSSL_Write 42 09803 #pragma libcall VSSLBase VSSL_Read 48 09803 #pragma libcall VSSLBase VSSL_SetTCPMode 4e 8002 /* V2*/ #pragma libcall VSSLBase VSSL_GetPeerCertificate 54 801 #pragma libcall VSSLBase VSSL_AddCertDir 5a 9802 #pragma libcall VSSLBase VSSL_X509_Free 60 801 #pragma libcall VSSLBase VSSL_X509_NameOneline 66 801 #pragma libcall VSSLBase VSSL_X509_FreeNameOneline 6c 801 #pragma libcall VSSLBase VSSL_X509_get_subject_name 72 801 #pragma libcall VSSLBase VSSL_X509_get_issuer_name 78 801 #pragma libcall VSSLBase VSSL_X509_get_notBefore 7e 801 #pragma libcall VSSLBase VSSL_X509_get_notAfter 84 801 #pragma libcall VSSLBase VSSL_GetVerifyResult 8a 9802 #pragma libcall VSSLBase VSSL_WriteCertPEM 90 9802 #pragma libcall VSSLBase VSSL_ReadCertPEM 96 801 #pragma libcall VSSLBase VSSL_ReadCertASN1 9c 801 #pragma libcall VSSLBase VSSL_ASN1_UTCTIME_sprint a2 9802 #pragma libcall VSSLBase VSSL_X509_NameHash a8 801 #pragma libcall VSSLBase VSSL_X509_HaveSubjectCert ae 9802 /* V3*/ #pragma libcall VSSLBase VSSL_X509_fingerprint b4 9802 #pragma libcall VSSLBase VSSL_X509_serialnumber ba 9802 #pragma libcall VSSLBase VSSL_SetRandSeed c0 0802 /* V6*/ #pragma libcall VSSLBase VSSL_GetStats c6 9802 #pragma libcall VSSLBase VSSL_CTX_Set_Options cc 0802 #pragma libcall VSSLBase VSSL_GetVersion d2 801 /* V8*/ #pragma libcall VSSLBase VSSL_SetDefaultOptions d8 001 #endif #ifdef MBX #define VSSLBASE void *dummy #define VSSLVAR NULL #else #define VSSLBASE struct Library *VSSLBase #define VSSLVAR VSSLBase #endif typedef void *X509; typedef void *ASN1_UTCTIME; typedef void *X509_NAME; char *VSSL_Id( void ); APTR VSSL_Create_CTX( void ); void VSSL_Free_CTX( APTR ctx ); APTR VSSL_Connect( APTR ctx, int sock ); void VSSL_Close( APTR ssl ); char *VSSL_GetCipher( APTR ssl ); int VSSL_Write( APTR ssl, APTR buff, int len ); int VSSL_Read( APTR ssl, APTR buff, int len ); void VSSL_SetTCPMode( int mode, APTR ); void VSSL_AddCertDir( APTR ctx, STRPTR dir ); int VSSL_GetVerifyResult( APTR ssl, char **errorp ); X509 *VSSL_GetPeerCertificate( APTR ssl ); void VSSL_X509_Free( X509 *cert ); STRPTR VSSL_X509_NameOneline( X509_NAME *name ); void VSSL_X509_FreeNameOneline( STRPTR name ); X509_NAME * VSSL_X509_get_subject_name( X509 *cert ); X509_NAME * VSSL_X509_get_issuer_name( X509 *cert ); ASN1_UTCTIME * VSSL_X509_get_notBefore( X509 *cert ); ASN1_UTCTIME * VSSL_X509_get_notAfter( X509 *cert ); int VSSL_WriteCertPEM( X509 *cert, STRPTR outfile ); X509 *VSSL_ReadCertPEM( STRPTR filename ); X509 *VSSL_ReadCertASN1( STRPTR filename ); void VSSL_ASN1_UTCTIME_sprint( char *to, ASN1_UTCTIME *tm ); ULONG VSSL_X509_NameHash( X509 *cert ); int VSSL_X509_HaveSubjectCert( APTR ctx, X509 *cert ); int VSSL_X509_fingerprint( X509 *cert, char *to ); void VSSL_X509_serialnumber( X509 *cert, char *to ); void VSSL_SetRandSeed( APTR buff, int len ); void VSSL_GetStats( APTR ctx, struct VSSL_CacheInfo *ci ); void VSSL_CTX_Set_Options( APTR ctx, ULONG options ); STRPTR VSSL_GetVersion( APTR ssl ); void VSSL_SetDefaultOptions( ULONG options ); #define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L #define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L #define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x00000040L #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L #define SSL_OP_TLS_D5_BUG 0x00000100L #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L #define SSL_OP_TLS_ROLLBACK_BUG 0x00000400L /* If set, only use tmp_dh parameters once */ #define SSL_OP_SINGLE_DH_USE 0x00100000L /* Set to also use the tmp_rsa key when doing RSA operations. */ #define SSL_OP_EPHEMERAL_RSA 0x00200000L /* The next flag deliberatly changes the ciphertest, this is a check * for the PKCS#1 attack */ #define SSL_OP_PKCS1_CHECK_1 0x08000000L #define SSL_OP_PKCS1_CHECK_2 0x10000000L #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L #define SSL_OP_NON_EXPORT_FIRST 0x40000000L #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x80000000L #define SSL_OP_ALL 0x000FFFFFL #define SSL_OP_NO_SSLv2 0x01000000L #define SSL_OP_NO_SSLv3 0x02000000L #define SSL_OP_NO_TLSv1 0x04000000L #endif /* VOYAGER_VSSL_H */Dossier vsslstubs contenant : vssl.c bss_sock_mbx.cLien vers un voyager compilé pour 68k.
**********************************************
Au passage REP Oliver Wagner !
**********************************************Un début de réécriture possible de vssl.h (Evidemment, il faut ajuster car sorti du contexte, ça risque de poser des petits problèmes)
/************************************************************************** ======================= The Modernization of Voyager Web Browser ======================= No_Copyright (C) 2024 by Void [Void Durant] <[email protected]> No Rights Reserved **************************************************************************/ #ifndef VOYAGER_VSSL_H #define VOYAGER_VSSL_H // includes à déplacer, modifier ... #include <exec/types.h> // Pour les types de base AmigaOS #include <proto/amissl.h> // Inclure le prototype de la bibliothèque AmiSSL ... #include <amissl/ssl.h> // Utilisation de la bibliothèque amissl ou OpenSSL moderne ?? #include <amissl/err.h> // Pour la gestion des erreurs ?? // Structure pour stocker les informations de cache SSL struct VSSL_CacheInfo { int sess_number; int sess_connect; int sess_connect_good; int sess_accept; int sess_accept_good; int sess_hits; int sess_cb_hits; int sess_misses; int sess_timeouts; }; // Déclarations des fonctions de la bibliothèque VSSL #if ( !defined(__GNUC__) && !defined(__DCC__) ) #pragma libcall VSSLBase VSSL_Id 1e 0 #pragma libcall VSSLBase VSSL_Create_CTX 24 0 #pragma libcall VSSLBase VSSL_Free_CTX 2a 801 #pragma libcall VSSLBase VSSL_Connect 30 0802 #pragma libcall VSSLBase VSSL_Close 36 801 #pragma libcall VSSLBase VSSL_GetCipher 3c 801 #pragma libcall VSSLBase VSSL_Write 42 09803 #pragma libcall VSSLBase VSSL_Read 48 09803 #pragma libcall VSSLBase VSSL_SetTCPMode 4e 8002 #pragma libcall VSSLBase VSSL_GetPeerCertificate 54 801 #pragma libcall VSSLBase VSSL_AddCertDir 5a 9802 #pragma libcall VSSLBase VSSL_X509_Free 60 801 #pragma libcall VSSLBase VSSL_X509_NameOneline 66 801 #pragma libcall VSSLBase VSSL_X509_FreeNameOneline 6c 801 #pragma libcall VSSLBase VSSL_X509_get_subject_name 72 801 #pragma libcall VSSLBase VSSL_X509_get_issuer_name 78 801 #pragma libcall VSSLBase VSSL_X509_get_notBefore 7e 801 #pragma libcall VSSLBase VSSL_X509_get_notAfter 84 801 #pragma libcall VSSLBase VSSL_GetVerifyResult 8a 9802 #pragma libcall VSSLBase VSSL_WriteCertPEM 90 9802 #pragma libcall VSSLBase VSSL_ReadCertPEM 96 801 #pragma libcall VSSLBase VSSL_ReadCertASN1 9c 801 #pragma libcall VSSLBase VSSL_ASN1_UTCTIME_sprint a2 9802 #pragma libcall VSSLBase VSSL_X509_NameHash a8 801 #pragma libcall VSSLBase VSSL_X509_HaveSubjectCert ae 9802 #pragma libcall VSSLBase VSSL_X509_fingerprint b4 9802 #pragma libcall VSSLBase VSSL_X509_serialnumber ba 9802 #pragma libcall VSSLBase VSSL_SetRandSeed c0 0802 #pragma libcall VSSLBase VSSL_GetStats c6 9802 #pragma libcall VSSLBase VSSL_CTX_Set_Options cc 0802 #pragma libcall VSSLBase VSSL_GetVersion d2 801 #pragma libcall VSSLBase VSSL_SetDefaultOptions d8 001 #endif #ifdef MBX #define VSSLBASE void *dummy #define VSSLVAR NULL #else #define VSSLBASE struct Library *VSSLBase #define VSSLVAR VSSLBase #endif // Déclarations de types pour les certificats typedef void *X509; typedef void *ASN1_UTCTIME; typedef void *X509_NAME; // Prototypes des fonctions char *VSSL_Id(void); APTR VSSL_Create_CTX(void); void VSSL_Free_CTX(APTR ctx); APTR VSSL_Connect(APTR ctx, int sock); void VSSL_Close(APTR ssl); char *VSSL_GetCipher(APTR ssl); int VSSL_Write(APTR ssl, APTR buff, int len); int VSSL_Read(APTR ssl, APTR buff, int len); void VSSL_SetTCPMode(int mode, APTR); void VSSL_AddCertDir(APTR ctx, STRPTR dir); int VSSL_GetVerifyResult(APTR ssl, char **errorp); X509 *VSSL_GetPeerCertificate(APTR ssl); void VSSL_X509_Free(X509 *cert); STRPTR VSSL_X509_NameOneline(X509_NAME *name); void VSSL_X509_FreeNameOneline(STRPTR name); X509_NAME *VSSL_X509_get_subject_name(X509 *cert); X509_NAME *VSSL_X509_get_issuer_name(X509 *cert); ASN1_UTCTIME *VSSL_X509_get_notBefore(X509 *cert); ASN1_UTCTIME *VSSL_X509_get_notAfter(X509 *cert); int VSSL_WriteCertPEM(X509 *cert, STRPTR outfile); X509 *VSSL_ReadCertPEM(STRPTR filename); X509 *VSSL_ReadCertASN1(STRPTR filename); void VSSL_ASN1_UTCTIME_sprint(char *to, ASN1_UTCTIME *tm); ULONG VSSL_X509_NameHash(X509 *cert); int VSSL_X509_HaveSubjectCert(APTR ctx, X509 *cert); int VSSL_X509_fingerprint(X509 *cert, char *to); void VSSL_X509_serialnumber(X509 *cert, char *to); void VSSL_SetRandSeed(APTR buff, int len); void VSSL_GetStats(APTR ctx, struct VSSL_CacheInfo *ci); void VSSL_CTX_Set_Options(APTR ctx, ULONG options); STRPTR VSSL_GetVersion(APTR ssl); void VSSL_SetDefaultOptions(ULONG options); // Options SSL #define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L #define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L #define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x00000040L #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L #define SSL_OP_TLS_D5_BUG 0x00000100L #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L #define SSL_OP_TLS_ROLLBACK_BUG 0x00000400L #define SSL_OP_SINGLE_DH_USE 0x00100000L #define SSL_OP_EPHEMERAL_RSA 0x00200000L #define SSL_OP_PKCS1_CHECK_1 0x08000000L #define SSL_OP_PKCS1_CHECK_2 0x10000000L #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L #define SSL_OP_NON_EXPORT_FIRST 0x40000000L #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x80000000L #define SSL_OP_ALL 0x000FFFFFL #define SSL_OP_NO_SSLv2 0x01000000L #define SSL_OP_NO_SSLv3 0x02000000L #define SSL_OP_NO_TLSv1 0x04000000L #endif /* VOYAGER_VSSL_H */ Et une partie 'modernisée' dans http.c :/*
* Builds up and sends the HTTP request.
*/
static void un_doprotocol_http_req(struct unode *un)
{
char buffer[8192]; // Taille fixe, mais à gérer avec précaution
char *bp;
int len;
int formlen = 0;
char *formdata = NULL; // Initialisé à NULL pour éviter les avertissements// Assemble the initial request
/*
* If we’re doing SSL-proxying, we need to
* « CONNECT » first.
*/#if USE_SSL
if (un->ssl == 1 && un->viaproxy)
{
// Utilisation de snprintf pour éviter les débordements de tampon
len = snprintf(buffer, sizeof(buffer), « CONNECT %s:%d HTTP/1.1\r\nUser-Agent: %s\r\n »,
un->purl.host, un->purl.port, vuseragent);if (len < 0 || len >= sizeof(buffer)) {
// Gestion d’erreur si le formatage échoue ou déborde
fprintf(stderr, « Error formatting CONNECT request\n »);
return;
}bp = buffer + len; // Pointer à la fin de la chaîne formatée
if (useproxyauth)
{
// Vérification de la taille pour éviter les débordements
len = snprintf(bp, sizeof(buffer) – (bp – buffer), « Proxy-Authorization: Basic %s\r\n », proxyauth);
if (len < 0 || len >= (sizeof(buffer) – (bp – buffer))) {
fprintf(stderr, « Error formatting Proxy-Authorization header\n »);
return;
}
bp += len; // Avancer le pointeur
}// Terminer la requête
snprintf(bp, sizeof(buffer) – (bp – buffer), « \r\n »);
un->ssl = 2; // Indiquer que la connexion SSL a été initiée
un->viaproxy = 0; // Désactiver l’utilisation du proxy
}
else if (un->ssl && !un->sslh)
{
un->protocolstate = HTTP_DO_SSL_HANDSHAKE; // Effectuer le handshake SSL
DL(DEBUG_INFO, db_http, bug(« Redoing for SSL handshake\n »));
return;
}
#endif /* USE_SSL */
}`On peut traiter méthodiquement tous les fichiers des sources de Voyager, les afiner (par exemple : vssl.c, network.h adapté à amissl) puis compiler et ensuite passer à javascript et css.
Vite, un panneau solaire et un PiStorm.
