Konvensi khas UNIX adalah bahwa program (biasanya) membaca konfigurasi startup mereka dari berbagai file yang telah ditentukan. Ini hanyalah sebuah tradisi, bukan apa pun yang didefinisikan oleh POSIX atau standar lainnya. Contoh program UNIX misalnya foobar
akan membaca, dengan urutan prioritas sebagai berikut:
~/.foobarrc ## User specific configuration parameters
/etc/foobarrc ## Global parameters, depending on taste
## `/etc/foobar/*(.conf)' might be chosen too
Mungkin ada mundur /usr/share/
tetapi itu tidak terlalu umum.
Jadi, di curl
sini mengikuti konvensi dan membacanya dari konfigurasi awal ~/.curlrc
. Dan dengan melakukan echo ipv4 >>~/.curlrc
, Anda telah menambahkan string ipv4
ke file ~/.curlrc
.
String ipv4
memiliki arti khusus untuk curl
- curl
akan menggunakan IPv4 untuk resolusi host. Ini analog dengan menggunakan argumen -4
/ ipv4
as curl
dari baris perintah, tetapi menyimpan untuk ~/.curlrc
menjadikan ini permanen.
Seperti yang telah Anda atur ipv4
di sana dan sekarang semuanya berfungsi untuk Anda, mungkin Anda telah mengkonfigurasi IPv6, dan curl
sebelumnya menggunakan IPv6 untuk resolusi host (berhasil), jadi tidak ada cadangan untuk IPv4. Sambungan ke situs gagal karena tidak semua situs memiliki server web yang dikonfigurasikan untuk mendengarkan alamat IPv6, sehingga socket()
panggilan akan gagal seperti yang dapat kita lihat dalam kasus ini.