2009-01-16 21 views
11

Cố gắng để có được hai nút erlang nói chuyện với nhau: một trên máy Ubuntu và một trên Windows XP.Erlang: Các nút không được phép/Có thể câu hỏi Cookie

Chúng tôi đang nhận được thông báo "Kết nối từ nút không được phép" ngăn một nút nhận thư từ người khác.

Cả hai đều sử dụng phiên bản 5.XXX của Erlang OTP.

Cả hai nút có cùng một cookie (.erlang.cookie)

Chúng tôi đang bắt đầu nút nhận với:

erl -name [email protected] 

và gọi hàm trên nó với 'fred @ ipaddress' (trong đơn báo giá)

Chúng tôi đã tắt tường lửa.

Vì vậy, điều gì khác có thể ngăn chặn kết nối?

Cập nhật: chúng tôi đang sử dụng erlang: get_cookie() để kiểm tra cookie trên cả hai nút và các giá trị khác nhau. Đây là vấn đề. Chúng tôi nghĩ rằng chúng tôi đang thiết lập cookie bằng cách đặt cùng một tệp .erlang.cookie vào thư mục nơi chúng tôi chạy xóa trên cả hai máy. Nhưng có lẽ đây là địa điểm sai?

Cập nhật 2: cảm ơn câu trả lời cho mọi người. Chúng tôi đã chọn Ranok làm câu trả lời của chúng tôi vì nó làm việc tốt cho chúng tôi. Tôi chắc chắn một số cách thay thế để thiết lập cookie cũng sẽ ổn.

Trả lời

11

Ngoài ra, khi bạn khởi động hệ thống Erlang, có một cờ dòng lệnh -setcookie sẽ cho phép bạn chỉ định cookie lúc bắt đầu.

erl -name [email protected] -setcookie FOOBAR 

Hy vọng rằng sẽ giúp, Jacob

+0

vâng, cảm ơn, mà làm việc một điều trị – interstar

1

Một vài điều tôi suy nghĩ:

  1. Bạn đã cố gắng thiết lập cookie qua erlang: set_cookie trên cả hai nút?
  2. Nếu không tìm thấy tệp .erlang.cookie trong thư mục $ HOME, thư mục sẽ được tạo. Có thể là một trong các tệp .erlang.cookie không ở đúng nơi trên một máy không? Bạn có thể tìm kiếm ổ đĩa cứng của bạn cho tập tin và nếu bạn tìm thấy nhiều hơn một trong những bạn tạo ra, erlang có thể đã đặt nó ở đó và đang sử dụng nó.
5

Bắt đầu bằng cách kiểm tra cookie của mỗi nút. Từ vỏ:

erlang:get_cookie(). 

Nếu họ không giống nhau, sau đó thay đổi một trong các cookie của nút để phù hợp với người kia:

erlang:set_cookie(node(), "newcookie"). 

Nếu mọi thứ hoạt động bạn cần để xem lý do tại sao các thiết lập cookie không là được chọn từ tệp cấu hình hoặc dòng lệnh arg.

2

Cookie Erlang phải ở trong thư mục người sử dụng. Không phải là thư mục ứng dụng.

Vì vậy, bạn là một cái gì đó như:

C:\Documents and Settings\InterstarUser\.erlang.cookie 

Bạn có thể thấy vị trí của CHỦ với lệnh env trong dòng lệnh nếu tôi nhớ chính xác từ ngày Windows của tôi.

2
erlang:set_cookie(node(), 'newcookie'). 

không

erlang:set_cookie(node(), "newcookie").